[英]How to set up express-session in production. Express-session is not working in https
[英]Express-Session not working in production/deployment
Express-Session 在开发环境中工作,因为它在我的浏览器中设置了“connect.sid”cookie。 但是,在生产中,它不会存储 cookie,而是使用相同的 session - 它每次都会创建一个新的。 我相信如果我能以某种方式保存第三方 cookies,这个问题就会得到解决,因为我的应用程序是使用 Heroku 部署的。 最后,我还使用 express-cors 来避免 CORS 问题(不知道这是否与 cookie 问题有关)。 我在 cors 中设置了 {credentials: true},在 Axios 中也设置了 {withCredentials: true}。
已解决的问题:-> 添加相同站点:'none' 用于生产的完整 Cookie 配置(快速会话):
cookie: { httpOnly: true, secure: true, maxAge: 1000 * 60 * 60 * 48, sameSite: 'none' }
Heroku 使用反向代理。 它提供 https 端点,然后将未加密的流量转发到网站。
尝试类似的东西
app.enable('trust proxy')
向 session 配置添加“名称”属性对我有用:
{
secret: process.env.SESSION_SECRET,
resave: false,
saveUninitialized: true,
proxy: true, // Required for Heroku & Digital Ocean (regarding X-Forwarded-For)
name: 'MyCoolWebAppCookieName', // This needs to be unique per-host.
cookie: {
secure: true, // required for cookies to work on HTTPS
httpOnly: false,
sameSite: 'none'
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.