Express.js,Passport.js,cookie会话,注销不会删除cookie

时间:2018-08-11 13:33:21

标签: node.js express authentication passport.js cookie-session

我正在使用PassportJS,并且此代码用于注销:

  .get("/logout", async (req, res) => {
    await req.logout();
    req.session = null;
    await res.clearCookie(process.env.PROJECT_TITLE.toLowerCase());
    await res.clearCookie(`${process.env.PROJECT_TITLE.toLowerCase()}.sig`);
    return res.redirect("/");
  });

它只是更改cookie,但不删除它们。 为什么?

如果我仅使用以下代码,它将删除它们:

  .get("/logout", async (req, res) => {
    await res.clearCookie(process.env.PROJECT_TITLE.toLowerCase());
    await res.clearCookie(`${process.env.PROJECT_TITLE.toLowerCase()}.sig`);
    return res.redirect("/");
  });

我在哪里错了?

1 个答案:

答案 0 :(得分:1)

像在this tutorial中一样,将req.session = null放入注销路由以清除会话cookie。如果仍然不能解决问题,请尝试在浏览器中清除项目URL的现有cookie,然后重试。我只是遇到了这个问题,这就是解决问题的方法!