جلوگیری از دکمه back مرورگر بعد از logout در لاراول

  • خانه
  • جلوگیری از دکمه back مرورگر بعد از logout در لاراول
Image تحقیقات

جلوگیری از دکمه back مرورگر بعد از logout در لاراول

با سلام خدمت لاراول دوستان عزیز

احتمالا شما هم براتون پیش اومده که داخل پروژتون یه سری از صفحات بدون لاگین نتوانیم دسترسی داشته باشیم .

خب برای این مشکل خیلی راحت لاگین بودن کاربر رو چک میکنید و یا از midleware های مربوط به احراض هویت در آموزش لاراول استفاده می کنید .

بعضی وقت ها لازم هست سخت گیرانه تر رفتار کنیم.به این صورت که علاوه بر این که کاربر باید لاگین کرده باشه حتما.همچنین بعد از Logout کردن هم نتواند با استفاده از دکمه Back مرورگر به صفحه قبلی برگرده.واگر اینکار را کرد به صفحه لاگین هدایت شود .

خب راه حل ما خیلی ساده است  . برای این کار در لاراول  از Middleware ها استفاده می کنیم و اون Middleware مورد نظرمون رو هرجا خواستیم صدا می کنیم .

خب ابتدا با استفاده از دستور زیر یک middleware به اسم ValidateBackHistory  می سازیم :

php artisan make:middleware ValidateBackHistory

همانطور که می دانید در لاراول middleware ها در مسیر app/http/middleware ساخته می شوند .

خب حالا ValidateBackHistory  را باز کنید و با استفاده از شی response$ به هدر دسترسی دادیم و مقادیر لازم رو ست می کنیم :

<?php
namespace App\Http\Middleware;
use Closure;
class ValidateBackHistory
{
/**
* 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
 
}
}

خب حالا فایل kernel.php که در مسیر app\Http\Kernel.php وجود دارد را باز کنید و این middleware را به آن اضافه کنید تا در کل پروژه ی لاراول امون بتوانیم از آن استفاده نماییم :

2
3
4
5
6
protected $routeMiddleware = [
          'auth' => 'App\Http\Middleware\Authenticate',
          'auth.basic' => 'Illuminate\Auth\Middleware\AuthenticateWithBasicAuth',
          'guest' => 'App\Http\Middleware\RedirectIfAuthenticated',
          'validateBackHistory' => 'App\Http\Middleware\ValidateBackHistory',
     ];

خب کار ما دیگه تمام است . شما برای جلوگیری از دکمه برگشت مروگر لازم است این Middleware را در کنترلر های خودتون صدا بزنید و استفاده نمایید.