2011-12-29 51 views
0

我使用Redis将会话存储在我的node.js应用程序中,托管在heroku上,但redis正在保持会话存储,我如何让它们自动过期?Node.JS与RedisStore会话超时

我明确的应用程序配置是这样的:

var app = express.createServer(
    express.static(__dirname + '/public', { maxAge: 31557600000 }), 
    express.cookieParser(), 

    express.session({ secret: 'secret', store: new RedisStore({ 
      host: 'myredishost', 
      port: 'port', 
      pass: 'myredispass', 
      db: 'dbname' 
     })}) 
); 

回答

5

由于连接会话中间件文档状态,你需要设置Cookie对象的MAXAGE属性:

express.session({ secret: 'secret', store: ..., cookie: { maxAge: 60000 }}); 

了解更多有关这里:http://senchalabs.github.com/connect/middleware-session.html

+1

但它删除存储在redis上的会话吗?或者只是用户cookie?这将是很好,如果我可以设置密钥过期时间,像这样:http://redis.io/commands/expire – 2011-12-30 01:57:43

+0

好吧,我发现我需要什么,谢谢 – 2011-12-30 02:02:48

+0

它删除会话,并可能cookie也我不确定。无论如何设置最大年龄,会话将自行到期。 – alessioalex 2011-12-30 07:26:15

1

如果您使用的是req.session.cookie.maxAge,它们将根据Cookie过期。