如何销毁存储在MongoDBNodeJS中的会话

问题描述

当前,我让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');
    });