就是我nodejs应用中,老是莫名其妙的session就没了(express)
比如req.session.userid 初始化为123456
过阵子req.session.userid变成了undefined…
但是我没权限读写公共redis。后来我跟后端商量了下让他写了个读写session的口子暴露给我。(get set del)
这个丢session是怎么造成的啊? 对于这个问题我这么处理可以么?
11 回复
Session被“过期”有两种情况:
-
Session ID (存储在Cookie中的)过期了,Session ID过期后,服务器会分配一个新的Session ID给当前客户端,这样的话,原来的Session数据也相当于失效了
-
用来存储Session的数据库没有对应的数据了(比如Redis中设置了过期时间)
以上任意一种情况都会导致Session数据没有了。 看你具体使用那个Sesison中间件,我不太清楚,你自己去看文档。
@youxiachai @leizongmin @dengqiao 楼上的,我的应用有的时候几十分钟不操作,甚至开一天都不会影响session,有的时候操作几分钟或者啥都不操作,就变成undefined了,根本不是你们说的情况