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).

Вот мой ответ: Здесь

Любая помощь будет очень признательна. Спасибо!

Вернуться на верх