php - Laravel 会话过期错误修复未注销
问题描述
因此,我在 Laravel 应用程序上遇到此错误,在用户会话到期并且他们注销后,他们会被带到一个带有以下消息的视图The page has expired due to inactivity. Please refresh and try again
。但是刷新并不能解决问题。
所以在网上经过大量调试和阅读后,我发现错误的原因是因为@csrf
_token
目标页面和请求'XSRF-TOKEN
不匹配。因此,用户被留在页面“刷新”的边缘。
我的登录表单是welcome
刀片上的下拉菜单,并@csrf
设置了令牌。
解决方案:
为了解决这个问题,我使用了 [this] ( https://github.com/mchekin/rpg/blob/master/app/Http/Middleware/VerifyCsrfToken.php ) 巧妙的技巧来破解问题。这又导致另一个错误view [auth.login] not found
。
为了解决这个问题,我showLoginForm
在其中有一条 get 路由LogginController
,我将其用作/
对我的应用程序的重定向。
没有更多的页面过期问题,除了用户没有注销。如果我单击浏览器上一页箭头,它会将我带到最后查看的刀片。
我怎样才能在 hiney 和 logout 中同时解决这个令牌问题?
我应该只使用普通的php函数吗
if (isset($request)) {
session_destroy($request);
}
// or
// set the following as except in VerifyCsrfToken class
protected $except = [
'mysite/logout',
];