首页 > 解决方案 > 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',
    ];

标签: phplaravelsessionsession-cookiescsrf

解决方案


推荐阅读