«Неверный токен csrf» с использованием файла cookie csurf - PullRequest
0 голосов
/ 02 апреля 2019

Я настраиваю предотвращение 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 }));

Это частьфункция рендеринга, которая отправляет токен представлению:

csrfToken: req.csrfToken()

И вот где токен используется в моей форме:

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

Значение в cookie отличается отодин во входных данных, поэтому я получаю недопустимую ошибку токена.

ОБНОВЛЕНИЕ: я добавил следующее:

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

И файл cookie равен входному значению, но я все еще получаюта же ошибка.

...