在Node.js Express/Connect中,有没有办法将会话设置为无穷大?

TIM*_*MEX 5 javascript cookies session node.js

我是这样做的:

app.use(express.session({
                cookie:{domain:"."+settings.c.SITE_DOMAIN}, 
                secret:'abc',
                store: redis_store,
                }));
Run Code Online (Sandbox Code Playgroud)

当我登录我的redis并输入时TTL sess:...,似乎此会话已到期.

如何让会话永不过期?(对于一切).我也希望cookie永不过期.

ale*_*lex 4

正如会话中间件页面上的 Connect 指南中提到的(Express 在内部使用 Connect),您可以在会话上指定 maxAge 选项:

  • cookie 会话 cookie 设置,默认为 { path: '/', httpOnly: true, maxAge: 14400000 }

例子:

connect(
      connect.cookieParser()
    , connect.session({ secret: 'keyboard cat', cookie: { maxAge: 60000 }})
    , connect.favicon()
    , function(req, res, next){
      var sess = req.session;
      if (sess.views) {
        res.setHeader('Content-Type', 'text/html');
        res.write('<p>views: ' + sess.views + '</p>');
        res.write('<p>expires in: ' + (sess.cookie.maxAge / 1000) + 's</p>');
        res.end();
        sess.views++;
      } else {
        sess.views = 1;
        res.end('welcome to the session demo. refresh!');
      }
    }
  ).listen(3000);
Run Code Online (Sandbox Code Playgroud)

注意:maxAge 以毫秒为单位,因此例如一天 = 86400000