Я использую модуль https://www.npmjs.com/package/csurf, чтобы защитить мои публичные c маршруты от подделки межсайтовых запросов. Сервер и клиент размещены в двух разных доменах, поэтому я не могу использовать прямой способ передачи сгенерированного токена клиенту.
Я создал две разные конечные точки на сервере, / csrfToken отправка сгенерированного токена и csrf cook ie в заголовках, а маршрут / регистр должен проверить данный токен и csrf cook ie, если он правильный.
const csrfProtection = csrf({
cookie: {
maxAge: 900
}
})
router.get('/csrfToken', csrfProtection, async (req, res, next) => {
res.json({ token: req.csrfToken() });
});
router.post(
'/register',
csrfProtection,
async (req, res, next) => {
return res.send('user registered');
}
);
Проблема, с которой я сталкиваюсь Теперь конечная точка / csrfToken открыта для всех запросов publi c, и каждый может сделать запрос на него. Так есть ли способ получить токен без предоставления учетных данных клиенту?
Я использую nuxt / vue, если это имеет отношение к решению моей проблемы.