How to set laravel 5.3 logout redirect path?

Stefan Bogdanescu

Founder & Senior Architect · 2026-06-29

Laravel Company

Title: Setting Logout Redirect Path in Laravel 5.3 (And Earlier Versions)

Introduction

In Laravel, a well-designed application often includes a user authentication system that handles tasks like login, logout, registration, and password resets. Among these functionalities is the need to redirect users to specific pages upon successful or unsuccessful logout attempts. In this blog post, we'll cover how you can set the logout redirect path in Laravel 5.3 (and earlier versions).

Overview of the Logout Functionality

The default logout functionality is implemented using Laravel's AuthenticatesUsers trait. This trait provides a public function called 'logout', which handles the actual logout process and redirection. The default redirection path after logging out is '/'. In some cases, you may want to control this redirection path based on specific user roles or conditions.

Manually Altering Redirect Path in Laravel 5.3

As mentioned earlier, editing the core trait to override the function that handles logout could lead to significant complications and is not recommended. Instead, you may choose to create a custom middleware for more control over your application's behavior.

Creating a Custom Middleware

First, let us generate a new middleware called RedirectAfterLogoutMiddleware. To do this, run the following command in your Laravel 5.3 project:

bash
php artisan make:middleware RedirectAfterLogoutMiddleware

This will create a new middleware inside the app/Http/Middleware folder with an empty class. Now open up this file and replace its contents with our custom logic:

php
<?php

namespace App\Http\Middleware;

use Closure, Request, Auth;

class RedirectAfterLogoutMiddleware
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if (Auth::check()) // If the user is already logged in.
            return redirect('/'); // Redirect to home page or other desired location.

        // Otherwise, if the user is not authenticated and trying to logout:
        if($request->is('logout'))
        {
            Auth::logout(); // Execute logout as usual.

            $redirectPath = config('settings.logout_redirect_path'); // Set the redirect path from your app's .env or configuration file.

            return redirect($redirectPath); // Redirect to specified path after logout.
        }

        return $next($request); // Allow the request to pass through if it's not a logout attempt or already authenticated.
    }
}

In this example, the custom middleware checks three conditions:

  1. The user is already logged in -> Redirects to the home page (or any other desired location).
  2. The current route matches '/logout' and the user is authenticated -> Execute normal logout process. Then redirect to the specified path defined in your project's configuration file or .env file.
  3. Any other case -> Allow the request to pass through.

Registering the Custom Middleware

To apply this middleware, you need to register it with your application using Route Model Bindings (Routes) or Application Service Providers. For example:

php
Route::middleware('auth')->group(function () {
    // ... Your routes...
});

Route::get('/logout', [
    'middleware' => ['redirectafterlogout']
]);

Conclusion

By following these steps, you can set the logout redirect path in Laravel 5.3 and earlier versions. This approach offers more flexibility to implement various redirection paths based on specific conditions or user roles without altering the core functionality of your application. Please refer to the linked blog post for a comprehensive explanation with code examples: https://laravelcompany.com/how-to-set-logout-redirect-path-in-laravel-5-8-and-before/. Remember to keep your applications secure and well documented for future enhancements.