app.use(session({
secret: SESSION_SECRET || 'default-secret',
resave: false,
saveUninitialized: true,
cookie: {
httpOnly: true,
secure: true //for production,
maxAge: 10 * 60 * 1000
}
}));
我正在解决我新开发的 Web 应用程序的一些安全问题。经过在线研究后,如果设置 secure=true,那么它将更安全,并且应该仅用于生产。但是,如果设置 secure: true,那么每次用户发送另一个请求时,即使在生产中,会话中的信息也会丢失,就像在生产中我使用 https 一样。有没有办法解决这个问题?
我尝试过
secure: true //for production
进行生产,而且我也在使用 https
但它不起作用。
如果您的应用程序在反向代理(例如 Nginx 或 Heroku)后面运行,则 Express 应用程序可能会将传入的 HTTPS 请求解释为 HTTP。在这种情况下,secure: true 将阻止发送会话 cookie。
app.set('trust proxy', 1);