所以我正在使用像mongo商店这样的快速会话:
app.use(session({
secret: 'some secret here',
saveUninitialized: false,
resave: false,
store: new MongoStore({
url: 'http://someurlhere'
})
}));
我有一些登录中间件,在成功登录后我想设置会话cookie到期时间。
所以我现在使用
测试10秒到期时间req.session.cookie.expires = new Date(Date.now() + 10000);
我希望会话到期为每个后续请求重置。目前,经过10秒后,无论我在登录后发出了多少请求,会话都会过期。
我觉得我在这里误解了一些东西!
修改
好的,所以我错过了文档中的rolling
配置选项,但即使我在会话配置选项中将其设置为true,也会出现相同的行为:
app.use(session({
secret: 'some secret here',
saveUninitialized: false,
resave: false,
store: new MongoStore({
url: 'http://someurlhere'
}),
rolling: true,
cookie: {
maxAge: 10000
}
}));
我现在控制台在我的路线上记录了cookie maxAge的值,并且在登录后每次后续请求时都会看到它减少,它永远不会重置回10000.
我做错了什么?
解决
好的,所以我发现了对此问题的评论 - https://github.com/expressjs/session/issues/189#issuecomment-182631933
我将resave
更改为true,现在按预期工作。