Laravel - 如何在电子邮件验证后重定向到以前的网址?

I want to redirect user to previous url after email verification.

Normally in Laravel 5.7 after you click on route which requires authentication you will be redirected back to that url after you log in.

I need same behaviour after e-mail verification.

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;
}