2011-12-29 54 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過期。