我需要检查用户是否已经从另一台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){});
}
}
}
答案 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('/');
}
});
}