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

علی حسین شهابی

1395/8/15

نظر0

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

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

خب برای این مشکل خیلی راحت لاگین بودن کاربر رو چک میکنید و یا از 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 را در کنترلر های خودتون صدا بزنید و استفاده نمایید.

اینستاگرام علی حسین شهابی لینکدین علی حسین شهابی

0 نظر

ارسال نظر جدید

 
Not signed in

کلیه حقوق مادی و معنوی , متعلق به سایت (Alihossein.ir)می باشد ,انتشار مطالب بدون ذکر منبع از نظر اخلاقی و شرعی صحیح نمی باشد.