更新express.js的Cookie会话

时间:2015-10-16 11:07:54

标签: node.js express express-session

我使用Expresss.js的cookie-session模块来处理会话。

我希望在每个页面加载(或ajax调用)上更新会话。这就是他们通常在任何地方工作的方式。

文档没有说出相关信息。

我尝试过这样做,但没有成功:

app.use(function(req,res,next ){
     req.sessionOptions.maxAge = 20*1000;
     return next();
});

1 个答案:

答案 0 :(得分:3)

我怀疑您没有将响应cookie发送给客户端。我用一个中间件解决了同样的问题(使用express和cookie-session),该中间件发送一个包含每个get的不同值的cookie:

app.use(session({
  key: cookieKey,
  secret: cookieSecret,
  maxAge: 1 * 60 * 60 * 1000 // 1 hour (rolling)
  })
);

app.get('*', function(req, res, next) {
  // To update the session expiration time we need to send the new
  // expiration in the response cookie.
  // To send again the response cookie to the client we need to
  // update the session object.
  req.session.fake = Date.now();
  next();
});

的确,如果会话对象does not change,cookie-session v.1.2.0没有set the Set-Cookie header将响应cookie发送给客户端。