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

4
我正在尝试使用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个回答

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'
}));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接