@700Hp

Почему сервер возвращает 500 статус, после установки csrf?

index.js
// Middleware
app.use(express.json())
app.use(cookieParser())
app.use(cors({
  origin: 'http://localhost:8081',
  credentials: true,
  methods: ['GET', 'POST', 'PUT', 'DELETE']
}))
app.use(csrf({cookie: {httpOnly: true} }))
app.use(helmet.frameguard({ action: 'SAMEORIGIN' }))
app.use(safetyMiddleware)
app.use('/api', router)
// Возможные ошибки с IOS
app.use(errorMiddleware)


safety-middleware
module.exports = function (req, res, next) {
  res.set("Content-Security-Policy", "default-src 'self'")
  res.set("X-XSS-Protection", "1; mode=block")
  res.set("X-Content-Type-Options", "nosniff")
  // res.set("XSRF-Token", req.csrfToken())
  next()
}

Как только с index.js убираю csrf сервер вновь работает, но функция req.csrfToken() перестаёт быть доступной.

Нашёл способ в интернете. Отправлять токен в шапке запроса + вшивать его в payload jwt. На фронте добавлять в localStorage и помещать его в шапку перед каждым запросом на сервер.
Опыта в подобной разработке не имею, отсюда несколько вопросов.
1. Насколько корректен указанный подход?
2. Почему сервер выдаёт 500 статус?
Спасибо за ответ.
  • Вопрос задан
  • 61 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы