nodejs 使用redis存储session会话状态的疑惑!
发布于 9个月前 作者 thinkive 970 次浏览 来自 问答

我是nodejs小鸟,最近对nodejs产生了浓厚的兴趣,因此在做了一些简单的DMEO,当然做DEMO难免遇到问题,特别是在做Session处理的时候 我使用redis来存储会话状态,设置中间件参数为: app.use(session({ store: new RedisStore(config.redisoption), secret: config.web.session_cookie_secret, resave: false, saveUninitialized: true, cookie:{expires: new Date(Date.now() +10000),maxAge: 10000} })); 关键点在设置cookie超时的问题上(上面我测试10秒超时),就是说session在建立后,如果我在10秒内没有向服务器发送消息,那么cookie自动清理,session会不存在,但是实际问题是:建立连接后,我在10秒内有请求给服务器,并且也做了req.session.save(),10秒后我的cookie仍然销毁了(请求后新产生了一个sessionid)。我也尝试过在我的请求后,手动res.cookie.expires = new Date(Date.now() +10000))修改超时时间,但仍然会在10秒后cookie销毁了,我在nodejs后台把每次请求的session显示处理,观察里面每次请求显示超时的时间也在变化(每次请求后,超时10秒起始计算时间会变化)。问题纠结了很久,请求各位大神们指导下。

untitled1.png

1 回复
回到顶部