为什么我的 cookie 没有保存在 Safari 上,而是保存在 Chrome 上?

Why is my cookie not being saved on Safari but being saved on Chrome?

所以我正在做一个项目,前端在 Next.JS 托管在 vercel 上,后端在 Express.JS 托管在 heroku 上。

我正在使用 express-session 和护照 JS 来存储 sessions。

在前端,我使用 axios 进行 HTTP 调用。 session 的 cookie 保存在 Chrome 上,但在 Safari 上未保存。我浏览了多个 Whosebug 帖子,但 none 有效。 Safari 正在 header 中接收 cookie,但未保存 cookie

这是我在 express 上的 cors 配置

这可能是什么问题?

好的,原来发生这种情况的原因是因为 Safari 不允许 cross-domain cookie。因此,解决此问题的唯一真正方法是将后端和前端托管在同一域的不同子域上。