Express 和 Redis 会话无法在浏览器关闭后继续存在
Posted
技术标签:
【中文标题】Express 和 Redis 会话无法在浏览器关闭后继续存在【英文标题】:Express and Redis sessions don't survive browser close 【发布时间】:2014-01-19 10:44:40 【问题描述】:我正在尝试使用 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】: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'
));
【讨论】:
以上是关于Express 和 Redis 会话无法在浏览器关闭后继续存在的主要内容,如果未能解决你的问题,请参考以下文章
NodeJS redis 连接会话 ID 在应该保持不变时重新生成