CSRF Failed HTTP заголовок некорректен при постинге с django axios
Я получаю ошибку 403 Forbidden при выполнении почтового запроса с помощью axios к django.
CSRF Failed: CSRF token from the 'X-Csrftoken' HTTP header incorrect.
Я использую сеансовую аутентификацию. GET-запросы работают нормально, но POST-запросы отклоняются!
Вот мои настройки:
PROTOCOL = "https://" if PRODUCTION else "http://"
SESSION_COOKIE_DOMAIN = ".mywebsite.com"
CSRF_COOKIE_NAME = "csrftoken"
CSRF_USE_SESSION = True
CSRF_TRUSTED_ORIGINS = [
"http://localhost:3000",
"https://mywebsite.com",
"https://gestione.mywebsite.com",
"https://api.mywebsite.com",
]
CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_ALLOW_ALL = False
CORS_ALLOWED_ORIGINS = [
f"{PROTOCOL}mywebsite.{EXT}",
f"{PROTOCOL}api.mywebsite.{EXT}",
f"{PROTOCOL}gestione.mywebsite.{EXT}",
f"{PROTOCOL}admin.mywebsite.{EXT}",
"http://127.0.0.1:3000",
"http://localhost:3000",
]
CORS_ALLOWED_ORIGIN_REGEXES = [
r"^https://\w+\.mywebsite\.com$",
r"^http://\w+\.mywebsite\.local$",
]
if PRODUCTION:
SESSION_COOKIE_SECURE = True
MIDDLEWARE = [
"django_hosts.middleware.HostsRequestMiddleware",
"django.middleware.security.SecurityMiddleware",
"django.contrib.sessions.middleware.SessionMiddleware",
"corsheaders.middleware.CorsMiddleware",
"django.middleware.csrf.CsrfViewMiddleware",
"django.middleware.common.CommonMiddleware",
"django.middleware.csrf.CsrfViewMiddleware",
"django.contrib.auth.middleware.AuthenticationMiddleware",
"django.contrib.messages.middleware.MessageMiddleware",
"django.middleware.clickjacking.XFrameOptionsMiddleware",
"django_hosts.middleware.HostsResponseMiddleware",
]
и моя конфигурация axios такова:
const api = axios.create({
xsrfHeaderName: "X-CSRFToken",
xsrfCookieName: "csrftoken",
responseType: "json",
withCredentials: true,
baseURL: "https://api.mywebsite.com"
});
Что случилось?