首页 > 解决方案 > Laravel - 会话似乎只保存了第二次

问题描述

我的 laravel 会话有问题(特别是 voyager 管理面板 - 但也可能是一般性的),我已经对其进行了一些调试。

每次我尝试登录 voyager 时都会收到 419 CSRF 令牌错误。(@csrf 令牌字段已经包含在 voyager 掩码中,并且在更新到 laravel 4.8 之前运行良好)我检查了 laravel csrf 令牌字段名称的更改,并且它已经被 voyager 包更新以与 laravel 4.8 一起使用。

我尝试更改每个会话驱动程序(文件、redis、数据库......),但它仍然显示 419。

并且会话在我的应用程序的其余部分工作正常。我注意到 voyager 有一个奇怪的行为,我无法解释。它似乎与会话有关。

启用中间件 CSRF: 当我进入登录页面时,输入我的数据并单击登录页面。我看到 419 错误。当我回到同一个窗口中的表格然后再次填写表格时,它工作得很好并且我已经登录了。如果我关闭我的窗口并在我的浏览器中打开一个私人窗口,它会再次这样做。这是可重现的。每次我必须登录一次(它失败)并且从第二次登录它就可以工作。

Middleware CSRF disabled(这样做是为了进一步测试): 似乎有类似的问题。

我在我的私人窗口中打开 voyager 并单击登录。(它可以工作,因为 CSRF 没有启用)但是只要我点击 voyager 中的某个地方,它就会记录让我回到登录表单。如果我第二次输入我的数据,我会再次登录,但这一次我可以随意点击和玩耍。一切正常,直到我关闭窗口并在私人窗口中重试。(同样的事情 - 需要 2 次登录才能使用一切)

所以它似乎与会话有关,而不是第一次保存,出于某种原因。我总是需要 2 次尝试才能使其正常工作。

这告诉我,会话类型通常可以工作(否则第二次也不会工作),但为什么不能立即工作?

有什么建议或想法吗?

标签: phplaravelvoyager

解决方案


推荐阅读