问题描述
当前,我让ReactJS客户端向NodeJS服务器上的/logout
端点发出请求,以销毁会话。看起来像这样:
router.get("/logout",(req,res) => {
// for express-session
req.session.destroy();
res.clearCookie('connect.sid');
res.status(200).send('User has been logged out');
});
我使用connect-mongodb-session
存储会话。
但是,无论是会话被销毁(在MongoDB中仍然可见)还是cookie connect.sid
在客户端都是持久的。
我当然也可以手动从数据库中删除会话,但是,我认为这不是常规的处理方式。
解决方法
您尝试过吗?
router.get("/logout",(req,res) => {
if(req.session) {
req.session.cookie.maxAge = 0
delete req.session
}
res.status(200).send('User has been logged out');
});