我使用express.session和connect-mongo来存储用户会话。 我将cookie maxAge设置为2周后,但我想要的是,如果用户在这2周内处于活动状态,则会话延长到另外2周,这样当他处于非活动状态2周时,他的会话将被删除(两者都是cookie和mongo中的会话)。 但问题是会话在访问页面时会在MongoDB中更新,但cookie将在2周后过期,并且不会更改它的到期时间。#39; 这是我的代码:
app.use(express.session({
secret: 'superSecretKey',
cookie: {maxAge: 3600000*24*14},
store: new MongoStore({
mongoose_connection: mongoose.connections[0],
db: 'myDb'
})
}));
我怎样才能实现我想要的目标? 谢谢!
答案 0 :(得分:3)
我终于解决了它,你必须使用中间件更新会话中的任何数据,以便cookie重新发送,就像这样:
app.use(function(req, res, next) {
req.session._garbage = Date();
req.session.touch();
next();
});
这样,maxAge会在每次向应用程序发出请求时更新cookie和会话。