Node.js nodejs&;从sessionStore快速删除会话

Node.js nodejs&;从sessionStore快速删除会话,node.js,Node.js,我需要检查用户是否已从另一台电脑登录,如果已登录,请终止上一个会话 以下代码在执行时不会抛出任何错误,但是我无法通过调用会话存储上的destroy()或使用delete从会话存储中删除会话id来结束第一个会话 如何使用会话id终止用户的会话 function test(user_id){ var ss = sessionStore.sessions; for(var sid in ss){ var ses = JSON.parse(ss[sid]); if(ses.us

我需要检查用户是否已从另一台电脑登录,如果已登录,请终止上一个会话

以下代码在执行时不会抛出任何错误,但是我无法通过调用会话存储上的destroy()或使用delete从会话存储中删除会话id来结束第一个会话

如何使用会话id终止用户的会话

function test(user_id){
  var ss = sessionStore.sessions;
  for(var sid in ss){ 
    var ses = JSON.parse(ss[sid]);
    if(ses.user_id==user_id) {
      console.log('kill:'+sid)
      delete ss[sid];
      sessionStore.destroy(sid,function(x){});  
    }
  }
}
试试这个:

req.session.destroy()

这就是4.x express中的工作原理


因此,在您的情况下,请执行
ss[sid].destroy()

尝试使用此代码,这将破坏用户的会话详细信息并注销用户

if (req.session) {
        // delete session object
        req.session.destroy(function(err) {
            if(err) {
                return next(err);
            } else {
                req.session = null;
                console.log("logout successful");
                return res.redirect('/');
            }
        });
    }  

您可以
console.log
destroy回调中的
x
值吗?谢谢,但我要做的是注销其他用户,而不是当前用户,请查看我的代码,其中为函数提供了用户id。您使用的是MongoDB吗?如果是这样,您可以使用connect mongo将用户ID保存在会话集合中。您可以使用用户id从该集合中删除用户会话