当会话 cookie 在 Laravel 中过期时重新加载站点

Posted

技术标签:

【中文标题】当会话 cookie 在 Laravel 中过期时重新加载站点【英文标题】:Reload site when session cookie expires in Laravel 【发布时间】:2020-06-17 20:16:52 【问题描述】:

我正在使用 Laravel 5.8,并且我的系统有一个显示某些链接的菜单,如下图所示:

该菜单的链接使用 iframe 在仪表板的中心部分加载,如下所示:

我正在处理会话,并且我有一个规定的时间,因此一旦会话 cookie 过期,我将不会让网站的任何部分向他们显示我正在使用会话控制配置中间件的路线:

Route :: resource ('users', 'UserController') -> middleware ('auth');

我的错误是当 cookie 过期时,页面会在 iframe 内重新加载,如下所示:

我想实现什么?我想确保如果我单击其中一个链接,登录将不会在 iframe 中加载,而是整个站点将被重新加载并将我带到主页,或者如果失败(这将是最好的) 如果会话过期,网站会自行刷新并带我进入主登录页面。

我试图用 jQuery 做一些事情,使用事件来捕捉鼠标的移动,当它不移动时,结合创建一个新的 cookie 来操作它,因为我想确定会话 cookie 是否存在刷新页面,但是这些 cookie 是如何加密的,我无法操作它们,但效果不是很好。我希望你能给我一些其他的想法。谢谢

【问题讨论】:

【参考方案1】:

在您单击的每个链接(路由)上,您必须使用中间件,并检查会话是否已过期,如果已过期,则可以注销用户并将其重定向到登录页面!

【讨论】:

嗨,是的,我使用了一个中间件,但这重定向到登录页面很好,但这是在 iframe 中加载的 好的,所以你必须在会话过期后创建一个单独的登录页面,你可以在上面重定向用户。

以上是关于当会话 cookie 在 Laravel 中过期时重新加载站点的主要内容,如果未能解决你的问题,请参考以下文章

浏览器会话结束时 Cookie 过期

将cookie设置为在会话结束时过期?网

在 Laravel 5.8 中会话过期时重定向到其他路由

Laravel 会话随机过期

Laravel 会话过期事件

作者会话的 Laravel 更改重定向部分过期