Laravel 9 -如何防止在用户登录并点击浏览器后退按钮后显示登录页面

3z6pesqy  于 2023-01-06  发布在  其他
关注(0)|答案(2)|浏览(172)

如何确保用户在Laravel-9中登录后,无法再通过浏览器后退按钮进入登录页面?
我在网上搜索了解决方案。我在几个地方读到过这是不可能的,或者我必须使用Javascript。
只是为了确定,我决定在这里张贴我的问题,我希望你能帮助我。
有什么方法可以做到这一点吗?如果解决方案是用javascript,我怎么能用javascript解决呢?
谢啦,谢啦

57hvy0tb

57hvy0tb1#

如果您在项目中打开guest Middleware /app/Http/Middleware/RedirectIfAuthenticated.php,您可以看到handle函数具有以下条件:

...

  if (Auth::guard($guard)->check()) {
    return redirect(RouteServiceProvider::HOME);
  }
       ...

这意味着用户登录网站后,如果试图进入登录页面,浏览器会将页面重定向到HOME地址,因此用户登录网站后无法访问登录页面。
最后,在您的\routes\web.php文件中,您必须按照以下方式在您的注册路由上应用客户中间件:

Route::get('register',[RegisterController::class,'create'])->middleware('guest');

**注:**您可以从/app/Providers/RouteServiceProvider.php文件中编辑HOME地址。

page列出了几种可以通过javascript禁用后退按钮的方法,但没有一种是有保证的。

vmdwslir

vmdwslir2#

默认情况下,Laravel 9在App\Http\Middleware下有RedirectIfAuthenticated中间件,它检查用户是否登录Auth::guard($guard)-〉check()*和 * 如果是,则将它们带到/dashboard url 否则它们不是。中间件在Kernel.php内的$routeMiddleware数组中注册为'guest',这意味着您可以将guest**中间件应用于所有不需要登录用户访问的路由。

相关问题