【发布时间】:2021-01-10 07:02:24
【问题描述】:
当从仪表板注销成功但单击返回按钮然后进入仪表板时,
- 从仪表板注销
- 然后点击浏览器后退按钮
- 并在没有电子邮件和密码的情况下进入仪表板
- 然后转点击注销显示错误页面过期419
【问题讨论】:
-
因为你已经登出,并且返回按钮会从浏览器缓存中将页面扔给你
-
可能是因为 @sta 的评论导致 CSRF 令牌不匹配。
当从仪表板注销成功但单击返回按钮然后进入仪表板时,
【问题讨论】:
当用户的会话过期(他们已经离开一段时间)然后尝试注销时,也会发生同样的情况。
当(现在)访客用户尝试注销时,您可以通过排除 csrf 令牌来防止这种情况发生。
我写在这里https://talltips.novate.co.uk/laravel/csrf-and-expired-logout-forms
这个问题的解决方法比较简单,只需要在VerifyCsrfToken中间件上加一点点;
use Closure;
//
public function handle($request, Closure $next)
{
if(!Auth::check() && $request->route()->named('logout')) {
$this->except[] = route('logout');
}
return parent::handle($request, $next);
}
【讨论】: