NextJs не устанавливает cookie из django csrf_token

Мое приложение nextjs, интегрированное с django, имеет систему аутентификации, основанную на csrftoken и sessionid. Когда приложение nextjs запускается, оно делает запрос к бэкенду для маршрута csrf, который автоматически устанавливает cookie в место назначения запроса. Обычно это работает при локальном запуске. Но при запуске nextjs в docker в производственной среде можно увидеть, что cookie устанавливается в заголовках ответа, но на самом деле cookie не создается. Я установил CSRF_COOKIE_SAMESITE = None и SESSION_COOKIE_SAMESITE = None. Но куки все равно не устанавливаются, даже в заголовках показывается, что куки установлены

XHRGET
https://api.viajahturismo.com.br/api/v1/csrf/
[HTTP/2 204  23ms]

        
    csrftoken   
    expires "2025-03-09T00:38:39.000Z"
    path    "/"
    samesite    "None"
    value   "8UayLGpyXUF0cc2AlM5zqBd4kdOHSfXf"
        
    csrftoken   "8UayLGpyXUF0cc2AlM5zqBd4kdOHSfXf"

Мои настройки django:

Мои настройки nginx в производстве:

upstream lito_upstream {
  # ip_hash;
  server viajah-api:8000;
  server front_viajah:3000;

}

server {
    location / {
        proxy_pass http://viajah-api:8000/;
    }

    listen 8000;
    server_name viajah-api;
}

#server
server {
  #Defines the port on which the server will listen for requests.
  include /etc/nginx/mime.types;
  location /media/ {
      autoindex on;
      alias /app/media/;
  }
  location / {
      proxy_set_header Host $host;
      proxy_pass http://front_viajah:3000;
  }


  listen 3000;
  server_name front_viajah;

Мой взгляд на получение csrf

class get_csrf(APIView):
    authentication_classes = [SessionAuthentication]
    permission_classes = [AllowAny]
    @method_decorator(ensure_csrf_cookie)
    def get(self, request, *args, **kwargs) -> Response:
        return Response(status=status.HTTP_204_NO_CONTENT)

Ps: На localhost и при локальном запуске docker все работает отлично, cookie устанавливается нормально, и я могу выполнять другие запросы, которые зависят от csrfToken и sessionID. Но в моем продакшене на VPS сервере с Docker, который тянет образы из docker hub, подталкиваемый действиями gh, не работает

Пожалуйста, если кто-то может помочь мне, я не имею ни малейшего представления о том, что происходит

Проблема была в том, что мне пришлось добавить CSRF_COOKIE_DOMAIN и SESSION_COOKIE_DOMAIN опцию acept my domain, вы должны добавить домен без https://. Если вы не добавите эти две опции, django установит host only для cookies, что позволит использовать cookies только для api домена.

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