First we need to modify RedirectIfAuthenticated and put intended url to session.
class RedirectIfAuthenticated
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @param string|null $guard
* @return mixed
*/
public function handle($request, Closure $next, $guard = null)
{
if(session()->get("url.intended")){
session()->put("redirect_after_email_verification", session()->get("url.intended"));
}
if (Auth::guard($guard)->check()) {
return redirect('/admin');
}
return $next($request);
}
}
Then add following code to VerificationController to check previously added url to session. If this url exist in session we will redirect user to that url after email verification.
public function show(Request $request)
{
return $request->user()->hasVerifiedEmail()
? redirect($this->redirectPath())
: view('auth.verify');
}
protected function redirectTo(){
if(session()->get("redirect_after_email_verification")){
return session()->get("redirect_after_email_verification");
}
return $this->redirectTo;
}