🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ مهدی حاج غلامی
جلوگیری از بازگشت به صفحه لاگین
جامعه لاراول ایجاد شده در ۰۴ اردیبهشت ۱۴۰۲

سلام وقتتون بخیر

چطور میتونیم از بازگشت دوباره به صفحه لاگین با استفاده از دکمه بازگشت مرور گر بعد از لاگین جلوگیری کنیم؟

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

سلام مهدی عزیز

برای جلوگیری از بازگشت به صفحه لاگین بعد از لاگین در لاراول، می‌توانید از میدلور‌ها استفاده کنید. برای مثال یک میدلور با نام "PreventBackHistory" ایجاد میکنیم و از آن استفاده میکنیم. برای این کار، می‌توانید به فایل App\\Http\\Middlewares\\RedirectIfAuthenticated مراجعه کنید و تابع handle را به صورت زیر تغییر دهید:

public function handle($request, Closure $next, $guard = 'web' )
{
  if (Auth::guard($guard)->check()) {
    return redirect('/home')->withHeaders([
      'Cache-Control' => 'no-cache, no-store, must-revalidate',
      'Pragma' => 'no-cache',
      'Expires' => '0',
    ]);
  }
  return $next($request);
}

در این کد، ما قبل از ریدایرکت به صفحه خانه، سه header ارسال می‌کنیم که باعث می‌شوند که مرورگر اطلاعات کش شده را پاک کند و از بازگشت به صفحه قبلی جلوگیری شود.

همچنین، می‌توانید از این کد نیز استفاده کنید تا برای تمام روت‌هایی که فقط برای کاربران وارد شده قابل دسترسی هستند، این قابلیت را فعال کنید:

Route::group(['middleware' => ['auth', 'preventBackHistory:web']], function () {
  // Your authenticated routes here
});

با این کار، مرورگر کاربران شما بعد از ورود به سایت دیگر نمی‌تواند به صفحه لاگین بازگردد.

بهترین پاسخ
احمدرضا فاطمی کیا ۰۴ اردیبهشت ۱۴۰۲، ۱۸:۳۶