【发布时间】:2020-01-05 04:58:11
【问题描述】:
为什么会这样:
router.use(session({
name: process.env.SESSION_COOKIE,
genid: () => uuidv4(),
cookie: {
httpOnly: true,
},
secret: process.env.SESSION_SECRET,
store: new RedisStore({
host: process.env.REDIS_HOST,
port: process.env.REDIS_PORT,
ttl: 1 * 24 * 60 * 60, // In seconds
}),
saveUninitialized: false,
resave: false,
}));
但这不是吗?
router.use(session({
name: process.env.SESSION_COOKIE,
genid: () => uuidv4(),
cookie: {
httpOnly: true,
secure: true,
},
secret: process.env.SESSION_SECRET,
store: new RedisStore({
host: process.env.REDIS_HOST,
port: process.env.REDIS_PORT,
ttl: 1 * 24 * 60 * 60, // In seconds
}),
saveUninitialized: false,
resave: false,
}));
将secure 设置为true 会导致根本没有设置会话cookie。 FWIW,我正在使用 PassportJS 进行身份验证。
注意:这个问题可能看起来类似于this one,但投票最多的答案并不能完全解决这个问题。它说httpOnly 导致了问题,但我不明白为什么会这样? cookie 没有设置在客户端,对吧?
相关文件位于https://github.com/amitschandillia/proost/blob/master/web/routes/auth-routes.js。
注意 2:服务器启用 SSL,URL 为 https://www.schandillia.com。
【问题讨论】:
标签: express cookies session-cookies