In this post, I would like to share a simple Laravel5 Middleware which prevents going back to the previous protected page after Logout by hitting the back button on your Browser.
When you hit the browser back button after logout, it will take you to the original page instead of redirecting to login page. It should redirect to the login page, isn’t it? Here I am gonna share a Middleware which will fix this issue.
Let’s start –
Create a middleware by issuing artisan command from your terminal –
php artisan make:middleware ValidateBackHistory
Laravel Prevent Browser back button
Above command will generate a middleware class called
app/http/middleware. Open that file and add response header configurations as shown below.
* Handle an incoming request.
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
public function handle($request, Closure $next)
$response = $next($request);
return $response->header('Cache-Control','nocache, no-store, max-age=0, must-revalidate')
->header('Pragma','no-cache') //HTTP 1.0
->header('Expires','Sat, 01 Jan 1990 00:00:00 GMT'); // // Date in the past
\app\Http\Kernel.php file, add our custom
ValidateBackHistory middleware in route middleware’s array.
protected $routeMiddleware = [
'auth' => 'App\Http\Middleware\Authenticate',
'auth.basic' => 'Illuminate\Auth\Middleware\AuthenticateWithBasicAuth',
'guest' => 'App\Http\Middleware\RedirectIfAuthenticated',
'validateBackHistory' => 'App\Http\Middleware\ValidateBackHistory',
To use this middleware you just need to call
validateBackHistory middleware for routes which require user authentication.
I hope you like this Post, Please feel free to comment below, your suggestion and problems if you face - we are here to solve your problems.