我正在尝试使用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'
}));
答案 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'
}));