如何注销验证用户

时间:2019-01-09 09:24:48

标签: node.js routes logout

我已成功/login登录用户,并能够显示我的/profile路线信息。

现在,我正在尝试/logout进行身份验证的用户,但似乎不起作用。尝试通过注销路径时,什么都没有发生。 JWT令牌不会过期,因此即使单击注销后/profile数据也在那里。

//logout testing
router.post('/logout' , checkAuth, (req, res) => {     
            req.logOut();
            res.status(200).send(["logged out"]).redirect('/login');
});

这是我的 /个人资料:-

router.get('/profile', checkAuth, (req, res, data) =>{  
    User.find(req.userData, function(err, users) {
    res.send(req.userData);
  });
});

我希望注销是全局的。用户必须从每个登录的设备上注销

1 个答案:

答案 0 :(得分:0)

使用JWT时,您的服务器是无状态的,因此服务器中没有会话。您必须从客户端删除存储的JWT,或者(但我不喜欢这种技术,这不是一个好习惯),当您注销并检查是否已将“已撤销” JWT的列表存储在服务器端时,客户端发送的令牌在此列表中。您还可以存储上一次注销的日期,并检查JWT的日期是否比注销日期最旧,如果JWT的日期最晚则无效。