Express和Redis会话无法在浏览器关闭后继续存在

时间:2014-01-02 01:55:34

标签: node.js session express redis session-cookies

我正在尝试使用RedisStore来使用持久会话,但每当我关闭浏览器时,会话都会被破坏。我尝试设置maxAge和ttl但没有任何东西使得会话在浏览器重启后仍然存在。我做错了什么?

我的代码的相关部分是:

var app = express();
var RedisStore = require('connect-redis')(express);

app.use(express.cookieParser('my secret key'));
  app.use(express.session({
  store: new RedisStore({
    host: 'localhost',
    port: 6379,
    ttl: (60000 * 24 * 30),
    cookie: { maxAge: (60000 * 24 * 30) }
  }),
  secret: 'my secret key'
}));

1 个答案:

答案 0 :(得分:8)

cookie应该属于您传递给express.session的对象,而不是您传递给RedisStore的对象。

尝试以下方法:

app.use(express.session({
  store: new RedisStore({ host: 'localhost', port: 6379, ttl: (60000 * 24 * 30)}),
  cookie: { maxAge: (60000 * 24 * 30)},
  secret: 'my secret key'
}));