Sta*_*ows 5 cookies safari csrf inertiajs laravel
我们最近部署了一个 Laravel 应用程序,并在我们的应用程序上遇到了一些 Safari 版本的奇怪问题。
当在我们的应用程序上冲浪时,尤其是在用户未经授权的情况下,我们有时会在 Safari 上遇到请求/响应标头中不存在 XSRF 令牌的问题。
在申请表上,缺少令牌会导致 419 页面过期问题。
该问题仅有时出现在某些版本的 Safari 中。大多数情况下,重置缓存和 Cookie 可以解决 1 或 2 个表单请求的问题。
我彻底重置了 Safari
技术
我们使用 PHP 8.0 和最新的 Laravel 版本。对于前端,有一个 vue.js 应用程序,以惯性.js 作为连接器。关于将 csrf-token 传递到前端,不需要进一步配置来传递 csrf-token。(来源)
我尝试捕获 TokenMismatchExpection 但不可能只有 HTTPException 有效。
我的问题是:
附上一些 Laravel 调试栏屏幕截图。
Safari 14.03 | 左侧 右侧镀铬
页面过期屏幕
我遇到了同样的问题。我将问题归咎于 Safari 在通过其他站点的链接打开页面时忽略“Set-Cookie”响应标头。(就我而言,它是在 MailHog 中打开的电子邮件中的链接)。如果手动在新选项卡中打开链接,问题就消失了。
由于缺少XSRF-TOKEN
cookie,axios 不会X-XSRF-TOKEN
在来自 Laravel 的请求中设置标头419
。
到目前为止,我还没有找到X-XSRF-TOKEN
手动注入标头的可行解决方案,因为中间件VerifyCsrfToken
期望令牌是加密的 cookie。
归档时间: |
|
查看次数: |
991 次 |
最近记录: |