使用csurf cookie的“无效的csrf令牌”

时间:2019-04-02 12:58:00

标签: node.js express security cookies csrf

我正在我的Web应用程序上设置CSRF预防,并且我已经坐了一段时间了。

我已经阅读了很多其他问题,提出了类似的要求,我的代码应该与解决方案做同样的事情,但是由于某些我不知道的原因而无法正常工作。

这是我在路由器中设置csurf的方法:

const bodyParser = require('body-parser');

router.use(bodyParser.urlencoded({ extended: false }));

const cookieParser = require('cookie-parser');

router.use(cookieParser());

const csrf = require('csurf');

router.use(csrf({ cookie: true }));

这是render函数的一部分,它将令牌发送到视图:

csrfToken: req.csrfToken()

这是在我的表单中使用令牌的地方:

<input type="hidden" name="_csrf" value="<%= csrfToken %>">

Cookie中的值与输入中的值不同,因此我得到了无效的令牌错误。

更新: 我添加了以下内容:

router.use(function (req, res, next){
  res.cookie('_csrf', req.csrfToken());
  next();
});

Cookie等于输入值,但是我仍然遇到相同的错误。

0 个答案:

没有答案