[LARAVEL] Disable back button after succesful login - fourslickz/notes GitHub Wiki
Create New Middleware
php artisan make:middleware PreventBackHistory
Middleware Configuration
app/Http/Middleware/PreventBackHistory.php
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
class PreventBackHistory
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle(Request $request, Closure $next)
{
$response = $next($request);
return $response->header('Cache-Control','nocache, no-store, max-age=0, must-revalidate')
->header('Pragma','no-cache')
->header('Expires','Sun, 02 Jan 1990 00:00:00 GMT');
}
}
Register Middleware
app/Http/Kernel.php
<?php
namespace App\Http;
use Illuminate\Foundation\Http\Kernel as HttpKernel;
class Kernel extends HttpKernel
{
.....
.....
/**
* The application's route middleware.
*
* These middleware may be assigned to groups or used individually.
*
* @var array
*/
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
'json' => JsonMiddleware::class,
'prevent-back-history' => \App\Http\Middleware\PreventBackHistory::class,
];
}
Use Middleware In Route
routes/web.php
Route::get('login', [AuthController::class, 'showFormLogin'])->name('login');
Route::post('login', [AuthController::class, 'login']);
Route::group(['middleware' => ['auth','prevent-back-history'] ], function () {
Route::post('logout', [AuthController::class, 'logout'])->name('logout');
Route::get('/', [HomeController::class, 'root'])->name('root');
Route::get('home', [HomeController::class, 'index'])->name('home');
Route::get('dashboard', [HomeController::class, 'dashboard'])->name('dashboard');
Route::get('pendapatan', [HomeController::class, 'pendapatan'])->name('pendapatan');
Route::get('logebike', [HomeController::class, 'logebike'])->name('logebike');
Route::get('logtidaktercatat', [HomeController::class, 'logtidaktercatat'])->name('logtidaktercatat');
Route::get('compliment', [HomeController::class, 'compliment'])->name('compliment');
});