JWT cookie из бэкенда Django не работает после развертывания

Я написал веб-приложение, бэкенд на Django с использованием django_rest_framework utils, а фронтенд на React.js. Аутентификация основана на JWT-токене, хранящемся в cookies и localStorage.

Когда обе стороны были на localhost, все работало нормально, но после того, как я развернул frontend и backend на удаленном сервере, Django не может установить cookie в домене frontend.

Вот мой код из LoginView в Django:

`class LoginView(APIView): def post(self, request): username = request.data['login'] пароль = request.data['password']

    user = authenticate(username=username, password=password)

    if user is not None:
        payload = {
            'id': user.id,
            'username': user.username,
            'exp': datetime.datetime.utcnow() + datetime.timedelta(minutes=3600),
            'iat': datetime.datetime.utcnow()
        }

        token = jwt.encode(payload, 'secret', algorithm='HS256')

        response = Response()

        response.set_cookie(key='jwt', value=token, httponly=False)

        response.data = {
            'jwt': token,
            'username': user.username,
            'userId': user.id
        }

        return response

    response = JsonResponse({"message": "An issue occured during the authentication process."})
    response.status_code = 500

    return response`

settings.py

CORS_ORIGIN_WHITELIST = [
    ...
    'https://<MY FRONTEND>.azurewebsites.net'
    ...
]

CSRF_TRUSTED_ORIGINS = [
        ...
        "https://<MY FRONTEND>.azurewebsites.net"
]

CORS_ALLOWED_ORIGINS = [
    ...
    "https://<MY FRONTEND>.azurewebsites.net"
]

CORS_ALLOW_CREDENTIALS = True

CSRF_USE_SESSIONS = False
SESSION_COOKIE_SECURE = False
CSRF_COOKIE_SECURE = False
CSRF_COOKIE_SAMESITE = 'None'
SESSION_COOKIE_SAMESITE = 'None'
SESSION_COOKIE_DOMAIN = '.azurewebsites.net'

CORS_ALLOW_HEADERS = list(default_headers) + ['Set-Cookie']

После входа в систему в моем фронтенд-приложении я не могу увидеть cookie с маркером JWT.

NOTE: Я заметил, что нет никаких проблем, если я пытаюсь войти в систему с помощью Thunderclient.

Что может быть не так?

Я полагал, что это были cookies одного сайта, я перепробовал все варианты, чтобы установить это на моем новом, развернутом домене фронтенда, но это не работает.

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