fix: CSRF 403 — читать токен из body (_csrf), cookieName без __Host- (v0.4.0)
This commit is contained in:
@@ -42,6 +42,16 @@ function initCsrf() {
|
||||
// Если сессии нет — пустая строка (допустимо для /login до установки сессии).
|
||||
getSessionIdentifier: (req) => req.sessionID || '',
|
||||
|
||||
// ⚠️ csrf-csrf v4 по умолчанию читает токен из заголовка x-csrf-token.
|
||||
// Наши формы (EJS) отправляют его в теле POST как поле _csrf.
|
||||
// Без этой строки токен не находится → 403 на каждый POST.
|
||||
getCsrfTokenFromRequest: (req) => req.body && req.body._csrf,
|
||||
|
||||
// Имя cookie без префикса __Host- (дефолт __Host-psifi.x-csrf-token
|
||||
// требует Secure-флаг; при NODE_ENV≠production secure:false → cookie
|
||||
// отклоняется браузером по HTTPS и валидация падает).
|
||||
cookieName: 'csrf-token',
|
||||
|
||||
cookieOptions: {
|
||||
// secure: true → cookie передаётся только по HTTPS. Важно в продакшене.
|
||||
secure: process.env.NODE_ENV === 'production',
|
||||
|
||||
Reference in New Issue
Block a user