Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

daugaard47's avatar

Redirect to login page after session expires

Can someone please help explain what I need to do to redirect back to the login page once the session expires? I cannot seem to figure this out for the life of me.

I've tried doing the following, but it only works when I physically press the logout button.

App/Http/Controllers/LoginController

namespace App\Http\Controllers\Auth;

use Auth;
use Illuminate\Http\Request;
use App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;

class LoginController extends Controller
{
    /*
    |--------------------------------------------------------------------------
    | Login Controller
    |--------------------------------------------------------------------------
    |
    | This controller handles authenticating users for the application and
    | redirecting them to your home screen. The controller uses a trait
    | to conveniently provide its functionality to your applications.
    |
    */

    use AuthenticatesUsers;

    /**
     * Where to redirect users after login.
     *
     * @var string
     */
    protected $redirectTo = '/home';

    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('guest')->except('logout');
    }

public function logout(Request $request)
{
    $this->guard()->logout();

    $request->session()->flush();

    $request->session()->regenerate();


    return redirect('/login')->with('info','You have been logged out.');
}

}
0 likes
3 replies
rin4ik's avatar

in this /app/Exceptions/Handler.php change Token mismatch exception

   protected function prepareException(Exception $e)
    {
        if ($e instanceof ModelNotFoundException) {
            $e = new NotFoundHttpException($e->getMessage(), $e);
        } elseif ($e instanceof AuthorizationException) {
            $e = new AccessDeniedHttpException($e->getMessage(), $e);
        } elseif ($e instanceof TokenMismatchException) {
              return redirect()->route('login');
        }

        return $e;
    }
2 likes
Helmchen's avatar

Can someone please help explain what I need to do to redirect back to the login page once the session expires?

Refresh the page :) The auth middleware should catch you and redirect to the login

AJAX is another story:

axios.interceptors.response.use(null, (error) => {
    if(error.response && error.response.status == 419) {
        // session timed out | not authenticated
        window.location.href = '/login';
    }
    return Promise.reject(error);
});
2 likes
KevinMcKee's avatar

@Helmchen that looks exactly like what I'm looking for. I'm very new to Vue though. Where would that code go so it works with all Vue components?

Please or to participate in this conversation.