为什么我的会话cookie会过期?

时间:2012-10-11 15:40:41

标签: node.js express connect

在节点中我有一个https服务器,我使用具有最大值的会话,这是代码:

app.use(express.cookieParser());
app.use(express.session({ 
  secret: 'secret stuff',
  store: sessionStore,
  cookie: { 
    secure: true,
    maxAge: 60 * 1000 //1 minute
  } 
}));

我想要一个功能,如果用户在maxAge期间访问该网站(在这种情况下为1分钟),cookie计时器重新开始,并且他/她还有1分钟松开它的会话ID。

我看到req.session._expires已更新(由会话中间件),但cookie保持不变。因此,Cookie将过期,将生成新的会话ID connect.sid

我怎样才能做到这一点?我认为它是由会话中间件自动完成的,但似乎cookie的到期和会话的到期是两个不同的事情,而不是session._expires是什么?

修改

Here DanielBaulig更好地说出我的问题。正如Marc B在评论中写道,cookie过期,因此会话变得孤立。这就是我想要避免的,我希望在会话被触及时更新cookie。

1 个答案:

答案 0 :(得分:2)

尝试

 cookie: { 
    secure: true,
    expires: new Date(Date.now() + 60 * 1000), // plus 1 minute
    maxAge: 60 * 1000 //1 minute
 }

我认为过期日期未正确重置。