Express-Session 在生产/部署中不起作用

问题描述

Express-Session 正在开发环境中工作,因为它在我的浏览器中设置了“connect.sid”cookie。但是,在生产中,它不存储 cookie,而是使用相同的会话 - 它每次都创建一个新会话。我相信如果我能以某种方式保存第三方 cookie,这个问题就会得到解决,因为我的应用程序是使用 Heroku 部署的。最后,我还使用了 express-cors 来避免 CORS 问题(不知道这是否与 cookie 问题有关)。我在 cors 中设置了 {credentials: true},在 Axios 中也设置了 {withCredentials: true}。

解决方法

问题已解决! -> 添加相同站点:'无' 用于生产的完整 Cookie 配置(快速会话):

饼干:{ httpOnly:真, 安全:真实, 最大年龄:1000 * 60 * 60 * 48, sameSite:'无' }

,

Heroku 使用反向代理。它提供 https 端点,然后将未加密的流量转发到网站。

尝试类似的东西

app.enable('trust proxy')

然后退房 https://expressjs.com/en/guide/behind-proxies.html