引言
我在发送跨域会话cookie时遇到了问题,在搜索之后,我更加困惑了。最初,我在foo.vercel.com上有一个客户端(下一个应用程序),在bar.heroku.com上有一个api (Express)。在本地主机上发送和保存cookies是正确的,但是在部署之后,默认情况下,将sameSite设置为lex遇到了问题。所以我把它改成了none。但是我发现sameSite none需要cookie集上的secure标志,所以我也改变了这一点。
问题所在
在将secure设置为true之后,不再发送cookie。
--如果设置了安全,并且您通过HTTP访问站点,则将不会设置cookie。
我的服务器和客户端都托管在HTTPS上。我检查了heroku的日志,请求协议是HTTPS.但是,当我从console.log解析器中提取request.protocol时,协议是HTTP:

在看了this之后
没有跨域cookies这样的东西。您可以在foo.example.com和bar.example.com之间共享cookie,但不能在example.com和example2.com之间共享
我将客户机转移到baz.heroku.com,但问题仍然存在。
为了检查一切是否仍然有效,我禁用了Cookies (没有SameSite )必须是chrome://flags中的安全,并且工作正常。
问题
)
我很感谢你的帮助。
发布于 2020-12-07 12:39:32
问题是Heroku的代理人。我必须将以下内容添加到快速服务器中:
app.set("trust proxy", 1);https://stackoverflow.com/questions/64958647
复制相似问题