5

所以我正在使用与 mongo 商店的 express-session,如下所示:

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。

我究竟做错了什么?

解决了

好的,所以我遇到了关于这个问题的评论

我更改resave为 true ,它现在按预期工作。

4

0 回答 0