Я реализовал CSRF (запрос межсайтовое подлог) защиты в экспрессе так:Как проверить конечные точки, защищенные CSRF в Node.js/выразить
...
app.use(express.csrf());
app.use(function (req, res, next) {
res.cookie('XSRF-TOKEN', req.csrfToken());
next();
});
...
Это прекрасно работает. Angularjs использовал токен csrf во всех запросах, сделанных через службу $ http. Запросы, которые я делаю через свое угловое приложение, отлично работают.
Моя проблема заключается в проверке этих конечных точек api. Я использую mocha для запуска своих автоматических тестов и модуля запроса для тестирования конечных точек api. Когда я делаю запрос к конечной точке, использующей csrf (POST, PUT, DELETE и т. Д.) С помощью модуля запроса, он терпит неудачу, хотя он правильно использует файлы cookie и т. Д.
Есть ли у кого-нибудь еще решение? Кому нужна дополнительная информация?
Пример испытания:
function testLogin(done) {
request({
method: 'POST',
url: baseUrl + '/api/login',
json: {
email: '[email protected]',
password: 'mypassword'
}
}, function (err, res, body) {
// do stuff to validate returned data
// the server spits back a 'FORBIDDEN' string,
// which obviously will not pass my validation
// criteria
done();
});
}
Можете ли вы поместить образец тестов, которые вы пытались сделать? – jjperezaguinaga