问题描述
我正在处理几个已部署应用程序的标头,我将“Set-Cookie”属性附加到从我的服务器到我的客户端(2 个独立的托管域)的响应。我看到 Set-Cookie 在网络响应中返回。它在本地工作正常,但是,我收到一个错误附加到“Set-Cookie”属性 ⚠️ 说。
Set-Cookie 未指定“SameSite”属性,默认为“SameSite=Lax”并被阻止,因为它来自跨站点响应,而不是对顶级导航的响应。 Set-Cookie 必须设置为“SameSite=None”以启用跨站点使用
我尝试了几种不同的语法来实现这一点,但到目前为止都失败了... https://github.com/VolksRat71/NOT_SUPREME/blob/master/backend/src/resolvers/Mutation.js#L111-L115
到目前为止我已经尝试过...
sameSite: "None"
>> option sameSite is invalid
SameSite: "None"
>> defaulted to "SameSite=Lax"
"SameSite" : "None"
>> defaulted to "SameSite=Lax"
"Same-Site" : "None"
>> defaulted to "SameSite=Lax"
"SameSite" : "none"
>> defaulted to "SameSite=Lax"
Picture of Header in Frontend Deployed App
解决方法
您的 package-lock.json
文件中的 Express 版本是 Express v4.16.3。 Express v4.17.0 中添加了 sameSite
选项的“none”值。
您可以删除您的 package-lock.json
文件,然后使用 npm i
重新运行 npm 安装 - 这将生成一个最新的 npm 锁定文件,并且它应该具有最新版本的 Express。
然后您可以测试并查看 sameSite
选项是否有效。该选项拼写为 sameSite
(驼峰式),值为 'none'
(小写)。