快速会话在几秒钟后变得不确定

问题描述 投票:0回答:1

我在一个nodejs项目中使用express-session 1.17.1,我可以正确地存储session,但过了几秒钟后,session变成了undefined。

这里是服务器的代码。

...
 self.app.use(session({
            secret: conf.SERVER.SECRET_WORD,
            resave: false,
            saveUninitialized: false,
            expires: new Date(Date.now() + 36000000)
          }));

server = http.createServer(self.app);
...

这是登录完成后存储session的代码。

...
 if(!err) {
                user.password="";
                req.session.user=user._id.toString();
                req.session.role=user.role;
                res.status(200).send(user);
              } else {
                errorHandler.processError(err, res, log);
              }
...

这是检查session是否为空的代码。

...
 if(req.session.user==null){
      errorHandler.processError(res.__("GENERAL.SESSION_NULL"), res, null, 401);
    }else{
// do something.
...

当我启动服务器并发出第一个请求时,所有工作都很正常,session不是空的,它已经存储了用户。但是几秒钟后,如果我执行同样的请求,session变成了undefined.Increasing expires param doesn't modify the behavior.Do you know what happens?

谢谢!我使用的是express-session 1。

javascript node.js express express-session
1个回答
0
投票

express-session不支持集群节点服务器(我不知道),而我的服务器是集群的。所以我在线程1中为instace创建了一个会话做日志,但如果另一个请求转到线程2,这里的会话是未定义的,我已经把它改成了使用connect-mongo,并把会话存储在mongodb中。

© www.soinside.com 2019 - 2024. All rights reserved.