【发布时间】:2019-08-08 12:20:09
【问题描述】:
我收到 419(抱歉,您的会话已过期。请刷新并重试。)偶尔在登录我的系统时使用不同的浏览器。
浏览器
- Chrome(工作)
- Firefox(工作)
- 萨菲尔 (419)
- IE10 (419)
我已经尝试了这些,但仍然不起作用。
- 使用不同的 laravel 版本(5.7.6、5.7.9、5.7.22、...)。
- 重新生成应用密钥。
- 在表单中尝试
{{ csrf_field() }}、@csrf。 - 将
SESSION_DOMAIN=xxx添加到 .env 文件中 - 清除所有浏览器缓存。
最后,我关闭了csrf验证。 419没了,但是登录也失败了302错误。我不知道发生了什么,谁能帮帮我?
【问题讨论】:
-
你的 laravel 应用使用负载均衡器还是某种 CDN ?
-
重新生成应用程序密钥或清除浏览器缓存实际上可能会使问题变得更糟而不是更好。当预期保留的会话数据被刷新或会话 cookie 消失时,通常会出现此问题。尝试弄清楚是否有更具体的步骤来重现这一点可能是值得的。 302 也不是错误,而是重定向响应。
-
会话超时是否为 0?您的 cookie 是安全的还是仅 http 的?您是否有某种自定义中间件来确保访问?
-
没有负载均衡,没有CDN,没有自定义中间件,只有http是真的,问题是在不同的浏览器中偶尔会发生。