DRF & Next.js: Cookies не хранятся в браузере только в производственной среде
Я работаю над веб-приложением с DRF
сзади и Next.js
спереди.
По какой-то причине, только в производственной среде, куки JWT от аутентификации не сохраняются в браузере.
Для аутентификации DRF
мы используем dj-rest-auth
и djangorestframework-simplejwt
.
Мы используем axios
для получения из Next.js
и включили withCredentials: true
.
Все работает нормально в локальной среде, но почему cookies не сохраняются в производственной среде?
Единственное различие между локальным и производственным - это разница в домене обоих (domain.com, sub.domain.com) и SSL.
# settings.py
CORS_ORIGIN_WHITELIST = 'https://sub.domain.com'
CORS_ALLOW_CREDENTIALS = True
REST_SESSION_LOGIN = False
REST_USE_JWT = True
SIMPLE_JWT = {
"ACCESS_TOKEN_LIFETIME": timedelta(minutes=60),
"REFRESH_TOKEN_LIFETIME": timedelta(days=7),
"ROTATE_REFRESH_TOKENS": True,
"BLACKLIST_AFTER_ROTATION": True,
"USER_ID_FIELD": "id",
"USER_ID_CLAIM": "user_id",
}
if not DEBUG:
JWT_AUTH_SECURE = True
set-cookie: jwt-token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNjQxOTgxMzIwLCJpYXQiOjE2NDE5Nzc3MjAsImp0aSI6ImJlMDY5NGExMjcyZTQ4NWE5ODQ2ZjRlZGE0NTZjZGQ4IiwidXNlcl9pZCI6Ijg5ODFjZTQ2LTVjYTgtNDM5Ni04YjE3LWM0NWRkNTg3ZWI3YiJ9.FonD-pv8hvB3J3XmCDE0kFBF7HHEPim6IJ7KTrbyIf0; expires=Wed, 12 Jan 2022 09:55:20 GMT; HttpOnly; Max-Age=3600; Path=/; SameSite=Lax; Secure
set-cookie: refresh-token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoicmVmcmVzaCIsImV4cCI6MTY0MjU4MjUyMCwiaWF0IjoxNjQxOTc3NzIwLCJqdGkiOiIzNDJiZGYxMzM4ZjU0MTA4YTA5M2MyYzM0Nzk1ZmM3ZSIsInVzZXJfaWQiOiI4OTgxY2U0Ni01Y2E4LTQzOTYtOGIxNy1jNDVkZDU4N2ViN2IifQ.D6FQZAZ54wYlGXt_g2ycu4-J-Gq6g7v4S1rb_Nc4IoM; expires=Wed, 19 Jan 2022 08:55:20 GMT; HttpOnly; Max-Age=604800; Path=/; SameSite=Lax; Secure