Django set_cookie работает на localhost, но не работает на ngrok?
Я использую Django для возврата cookie в ответ через set_cookie:
response.set_cookie(
key = settings.SIMPLE_JWT['AUTH_COOKIE'],
value = data["refresh"],
expires = settings.SIMPLE_JWT['REFRESH_TOKEN_LIFETIME'],
path = settings.SIMPLE_JWT['AUTH_COOKIE_PATH'],
secure = settings.SIMPLE_JWT['AUTH_COOKIE_SECURE'],
httponly = settings.SIMPLE_JWT['AUTH_COOKIE_HTTP_ONLY'],
samesite = settings.SIMPLE_JWT['AUTH_COOKIE_SAMESITE'],
)
где значения следующие:
SIMPLE_JWT = {
'ACCESS_TOKEN_LIFETIME': timedelta(minutes=5),
'REFRESH_TOKEN_LIFETIME': timedelta(days=1),
...
'AUTH_COOKIE': 'refresh_token',
'AUTH_COOKIE_SECURE': False,
'AUTH_COOKIE_HTTP_ONLY' : True,
'AUTH_COOKIE_PATH': '/',
'AUTH_COOKIE_SAMESITE': 'Lax',
}
CORS настроен правильно. Я также правильно отправляю withCredentials: true,
в моих запросах axios.
Моя проблема в том, что когда я тестирую в разработке (т.е. Frontend размещен на http://127.0.0.1:3000/ и Backend размещен на http://127.0.0.1:8000/) система работает (т.е. cookie устанавливается). Однако, когда я использую ngrok для туннелирования моего бэкенда к безопасному url, ничего не работает. Я по-прежнему получаю заголовки set-cookie в своем ответе, так что я получаю куки - просто они не устанавливаются. Кроме того, я использую Safari (поскольку я знаю, что у Chrome есть проблемы с установкой cookie из-за требования значений для samesite и secure).
Вот мой ответ: Здесь
Любая помощь будет очень признательна. Спасибо!