小编use*_*393的帖子

Nodejs req.sessionID 在重定向后偶尔会发生变化

我使用 nodejs、express 和 connect-memcaced 来处理我的会话。我制作了一个每次都能完美执行的登录脚本,设置会话数据并将用户标记为已登录,然后将他重定向回他登录的页面。有时(并非总是)发生的情况是,在他被重定向并且页面加载之后,cookie 的 sessionID 发生变化,并且用户当然不再登录。我未能找到发生这种情况的原因以及为什么它每次都不会发生。

登录功能的代码片段:

DB.getOne('User',{filters:{'primary':{email:req.body.email}}}, function(err,data){
  if(data[0] && data[0].active == 1){
    var encodedPass = self.encodePass(req.body.pass,req.body.email);
    if(encodedPass == data[0].pass){
      req.session.pr.user = data[0];
      req.session.pr.user.status = true; 
      res.writeHead(302, {
        'Location': goTo 
      });
      res.end();
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

直接查看 memcached,我可以看到它执行得很完美,并且数据始终保存到原始 sessionID 下的 memcached 中。由于某种原因,重定向必须更改 sessionID

sessionid session-cookies node.js express

5
推荐指数
1
解决办法
1164
查看次数

标签 统计

express ×1

node.js ×1

session-cookies ×1

sessionid ×1