nodejs&表示从sessionStore删除会话

时间:2015-06-13 02:57:48

标签: node.js

我需要检查用户是否已经从另一台PC登录,如果是,则终止上一个会话。

以下代码在执行时不会抛出任何错误,但是我无法通过在会话存储上调用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){});  
    }
  }
}

2 个答案:

答案 0 :(得分:0)

试试这个:

req.session.destroy();

这适用于4.x express。

所以在你的情况下做ss[sid].destroy();

答案 1 :(得分:0)

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

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('/');
            }
        });
    }