【发布时间】:2013-10-17 04:26:58
【问题描述】:
我使用 express.session 和 connect-mongo 来存储用户会话。 我从现在开始将 cookie maxAge 设置为 2 周,但我想要的是,如果用户在这 2 周内处于活动状态,则会话会延长 2 周,这样当他 2 周不活动时,他的会话就会被删除(两者cookie 和 mongo 中的会话)。 但问题是当他访问一个页面时,会话在 MongoDB 中得到更新,但是 cookie 将在 2 周内过期,并且不会改变它的“过期”。 这是我的代码:
app.use(express.session({
secret: 'superSecretKey',
cookie: {maxAge: 3600000*24*14},
store: new MongoStore({
mongoose_connection: mongoose.connections[0],
db: 'myDb'
})
}));
我怎样才能实现我想要的? 谢谢!
【问题讨论】:
-
请参阅this answer,了解如何实现这一目标。除此之外,
maxAge应该设置为会话到期的未来毫秒数,而不是日期(这就是expires的用途)。所以使用这个:maxAge : 3600000*24*14将到期时间设置为两周。 -
谢谢!我还在github.com/senchalabs/connect/issues/670 上找到了这个。是的,我总是混淆 expires 和 maxAge,我编辑了问题并发布了答案
标签: node.js mongodb session cookies express