在 Laravel 中同时支持旧 Safari 和新 Chrome 时的 SameSite cookie 策略设置

SameSite cookie policy setting when supporting both old Safari and new Chrome in Laravel

我有一个 Laravel 7 应用程序,它使用基于 Cordova 的 webview 应用程序作为辅助界面。 为了支持来自应用程序的跨域请求,我不能使用严格或宽松的 SameSite 策略。

显然 Chrome 已将 cookie samesite 默认值更改(并暂时回滚)为 lax。 这意味着我应该将 SameSite 策略设置为 none.

但是如果我将我的 SameSite 策略设置为 none,那么较旧的 Safari webview 认为 none 意味着严格。我的应用程序无法在这些设备上运行。这意味着我根本不应该设置 SameSite? (Laravel设置为空)

我应该怎么做才能同时支持旧的 Safari 和新的 Chrome 浏览器? Laravel 能否根据用户代理动态更改 SameSite 设置?

您可以检测浏览器的 UserAgent,然后不要将 SameSite 设置提供给不支持它的浏览器。

Chromium 博客有一篇关于它的精彩文章https://www.chromium.org/updates/same-site/incompatible-clients

这应该涵盖了所有内容!