javascript - 在 Node.js Express/Connect 中,有没有办法将 session 设置为无限大?

标签 javascript session node.js cookies

我是这样做的:

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

当我登录到我的 redis 并键入 TTL sess:... 时,似乎此 session 已过期。

如何让 session 永不过期? (对于一切)。我还希望 cookie 永不过期。

最佳答案

Connect guide on the session middleware page 中所述(Express 在内部使用 Connect),您可以在 session 上指定一个 maxAge 选项:

  • cookie Session cookie settings, defaulting to { 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);

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

关于javascript - 在 Node.js Express/Connect 中,有没有办法将 session 设置为无限大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8951258/

相关文章:

javascript - 目录 javascript 输入

javascript - 对字母表列表进行排序

Java - Google App Engine - 当我更改存储在 session 范围内的类时出现 InvalidClassException

node.js - 为什么node express req.session随着redis消失了?

javascript - 如何在嵌入中显示用户的列值?

javascript - 如何将字符串数组转换为另一个数组

javascript - 如何使用 jquery 在动态生成的文本区域上自动运行方法?

php - $_SESSION ['login_user' ] 不工作

javascript - 比较两个复杂的 JSON 数组

javascript - 如何使AWS S3请求可重试?