如何确保用户在Laravel-9中登录后,无法再通过浏览器后退按钮进入登录页面?我在网上搜索了解决方案。我在几个地方读到过这是不可能的,或者我必须使用Javascript。只是为了确定,我决定在这里张贴我的问题,我希望你能帮助我。有什么方法可以做到这一点吗?如果解决方案是用javascript,我怎么能用javascript解决呢?谢啦,谢啦
57hvy0tb1#
如果您在项目中打开guest Middleware /app/Http/Middleware/RedirectIfAuthenticated.php,您可以看到handle函数具有以下条件:
guest
/app/Http/Middleware/RedirectIfAuthenticated.php
... if (Auth::guard($guard)->check()) { return redirect(RouteServiceProvider::HOME); } ...
这意味着用户登录网站后,如果试图进入登录页面,浏览器会将页面重定向到HOME地址,因此用户登录网站后无法访问登录页面。最后,在您的\routes\web.php文件中,您必须按照以下方式在您的注册路由上应用客户中间件:
HOME
\routes\web.php
Route::get('register',[RegisterController::class,'create'])->middleware('guest');
**注:**您可以从/app/Providers/RouteServiceProvider.php文件中编辑HOME地址。
/app/Providers/RouteServiceProvider.php
page列出了几种可以通过javascript禁用后退按钮的方法,但没有一种是有保证的。
vmdwslir2#
默认情况下,Laravel 9在App\Http\Middleware下有RedirectIfAuthenticated中间件,它检查用户是否登录Auth::guard($guard)-〉check()*和 * 如果是,则将它们带到/dashboard url 否则它们不是。中间件在Kernel.php内的$routeMiddleware数组中注册为'guest',这意味着您可以将guest**中间件应用于所有不需要登录用户访问的路由。
2条答案
按热度按时间57hvy0tb1#
如果您在项目中打开
guest
Middleware/app/Http/Middleware/RedirectIfAuthenticated.php
,您可以看到handle函数具有以下条件:这意味着用户登录网站后,如果试图进入登录页面,浏览器会将页面重定向到
HOME
地址,因此用户登录网站后无法访问登录页面。最后,在您的
\routes\web.php
文件中,您必须按照以下方式在您的注册路由上应用客户中间件:**注:**您可以从
/app/Providers/RouteServiceProvider.php
文件中编辑HOME
地址。page列出了几种可以通过javascript禁用后退按钮的方法,但没有一种是有保证的。
vmdwslir2#
默认情况下,Laravel 9在App\Http\Middleware下有RedirectIfAuthenticated中间件,它检查用户是否登录Auth::guard($guard)-〉check()*和 * 如果是,则将它们带到/dashboard url 否则它们不是。中间件在Kernel.php内的$routeMiddleware数组中注册为'guest',这意味着您可以将guest**中间件应用于所有不需要登录用户访问的路由。