419 页面在 laravel 5.7 后过期

419 page expired in laravel 5.7

我在 Laravel 5.7 多重身份验证中遇到问题 419 页面过期 。如果万一我尝试在同一浏览器但在不同的选项卡中登录用户和管理员。就像在一个选项卡中打开用户登录屏幕,在第二个选项卡中打开管理员登录屏幕一样。首先,我尝试登录普通用户,用户登录成功。但是当我转到第二个选项卡并尝试登录管理员用户时,在这种情况下会出现 419 页面过期错误。但是,如果我在管理员登录尝试之前刷新第二个选项卡意味着管理员登录页面,则管理员可以正常工作并成功登录而没有任何错误(419 页面已过期)。你能帮我解决这个问题吗?我已经在发送带有表单的 @csrf 令牌。

在您使用任何角色登录之前,两个页面具有相同的令牌值。 (请查看有关 Laravel CSRF 令牌的其他文章)

Laravel 为应用程序管理的每个活动用户会话自动生成一个 CSRF "token"。

因此,如果您登录,将启动新的用户会话并重新生成 CSRF 令牌。

这就是为什么您在刷新之前在管理页面上显示 419 的原因。如果您刷新页面,Laravel 将呈现新的令牌值。

请使用检查功能在您的浏览器上进行测试。

我遇到了这个问题,结果我屏蔽了所有的浏览器 cookie。请确保您的 cookie 未被浏览器设置阻止。

您可以在登录后使用 WebSockets 刷新令牌。