Я настраиваю предотвращение 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 равен входному значению, но я все еще получаюта же ошибка.