Django CORS Headers работает при разрешении для всех, но не для указанного происхождения
У меня есть React frontend (размещенный на http://localhost:3000/), который пытается отправить токены обновления JWT через HttpOnly Cookies в Django REST API (размещенный на http://localhost:8000/, но туннелированный с помощью ngrok на https адрес).
Я использую django-cors-headers, чтобы справиться с кросс-оригинальным аспектом этого. Однако, что бы я ни делал, я не могу заставить это работать (несмотря на несколько дней исследований). Любая помощь будет очень признательна :D
Я думаю, что правильно обращаюсь к конечной точке (т.е. https://ngrokapiurl/api/token/refresh/), и я поместил 'corsheaders.middleware.CorsMiddleware',
в начало блока промежуточного программного обеспечения.
Ошибки CORS исчезают, когда я указываю CORS_ORIGIN_ALLOW_ALL = True
. Однако, я не только понимаю, что с точки зрения безопасности это не идеально, но это также не работает, когда я устанавливаю CORS_ALLOW_CREDENTIALS = True
, чтобы позволить withCredentials: True
части моего запроса axios отправлять HttpOnly cookie, содержащий маркер обновления. Поэтому я удаляю CORS_ORIGIN_ALLOW_ALL = True
и устанавливаю
CORS_ALLOWED_ORIGINS = [
"http://localhost:3000",
]
для указания разрешенного происхождения. Однако, именно в этот момент, кажется, ничего не работает. Пожалуйста, помогите мне исправить это - я очень новичок во всем этом!
Ошибка, которую я получаю: error
В Safari я получаю "No Response Headers" на вкладке Network консоли разработчика.
Если вы хотите увидеть что-нибудь еще, чтобы помочь в отладке, я буду более чем счастлив поделиться всем необходимым. Спасибо!