Я пытаюсь реализовать защиту csrf для вызовов vue. Я использую express в качестве бэкэнда. Для csrf я использовал модуль csurf.
var cookieParser = require('cookie-parser');
var app = express();
var csrf = require('csurf');
app.use(cookieParser());
const csrfProtection = csrf({ cookie: true });
//getting csrf token
app.get('/api/getcsrftoken',csrfProtection,function (req, res) {
return res.json({ csrfToken: req.csrfToken() });
});
//validate csrf
})
app.all("/WS/:name/:id?",csrfProtection,function(req, res, next){
console.log("hello");
}
В vue js Authservice предоставляет метод getCSRF для получения токена.
getCSRF()
{
return axios.get('http://192.168.20.28:8000/api/getcsrftoken').then((response) => {
axios.defaults.headers.common['X-CSRF-Token'] = response.data.csrfToken;
}, (err) => {
console.log(err)
})
}
В компоненте входа vue,
async mounted(){
await AuthService.getCSRF();
}
Заголовок
В методах я написал запрос ax ios на express, затем он сообщает 403 запрещенную ошибку. Что-нибудь добавить в мой код? Спасибо заранее.