【问题标题】:Node Express CSRF token in not invalidated after logout注销后节点 Express CSRF 令牌未失效
【发布时间】:2021-11-25 01:31:45
【问题描述】:

我正在使用标准的 express CSRF 模块。它似乎工作正常,只是在注销并再次登录后,仍然可以使用上一个会话中生成的 CSRF 令牌。我认为使会话无效就足够了 - 请参见此处的代码示例,但这不起作用:

const csrf = require("csurf");
const csrfProtection = csrf({ cookie: true });

//CSRF protected route
app.post("/editUser",csrfProtection,async function (req, res, next) {
   //Do stuff
});

//Logout route
app.get("/logout", function (req, res) { 
   req.session.destroy(); 
});

我需要做些什么来确保 CSRF 令牌在用户注销时失效?

【问题讨论】:

    标签: node.js express csrf


    【解决方案1】:

    不确定这是否是最佳解决方案,但在注销和登录路由上使用 clearCookie 功能似乎可以解决问题,例如

    app.get("/logout", function (req, res) { 
       res.clearCookie("_csrf");
       req.session.destroy(); 
    });
     
    

    【讨论】:

      猜你喜欢
      • 2021-06-19
      • 2023-02-20
      • 2016-02-03
      • 2015-08-25
      • 1970-01-01
      • 2021-01-02
      • 2017-08-14
      • 1970-01-01
      • 2014-05-31
      相关资源
      最近更新 更多