У меня проблемы с установкой cookies с помощью response.set_cookies, он возвращает пустой словарь в request.COOKIES в моих Django и React.js, используя axios [duplicate]

Я разрабатываю приложение для аутентификации, используя django rest framework и React.js с JWT, и оно работает с входом и регистрацией пользователя, но когда я хочу получить доступ к деталям вошедшего пользователя, оно говорит, что он не аутентифицирован, он не может получить Cookie из request.COOKIES.get("jwt"), он возвращает пустой словарь, и он также говорит во фронтенд-заголовках ответа

В этом заголовке Set-Cookie не был указан атрибут "SameSite" и по умолчанию было установлено значение "SameSite = Lax", и он был заблокирован, поскольку пришел из межсайтового ответа...

Response Headers Image

Здесь находится View.py


...

class LoginView(APIView):
    
    def post(self, request):
        email = request.data["email"]
        password = request.data["password"]

        user = User.objects.filter(email=email).first()
        
        if user is None:
            raise AuthenticationFailed("Incorrect Email!")
        
        if not user.check_password(password):
            raise AuthenticationFailed("Incorrect Password!")
        
        payload = {
            'id': user.id,
            'exp': datetime.datetime.utcnow() + datetime.timedelta(minutes=60),
            'iat': datetime.datetime.utcnow()
        }

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

        response.set_cookie(key='jwt', value=token, httponly=True)
        response.data = {
            'jwt': token
        }

        return response

class UserView(APIView):
    def get(self, request):
        token = request.COOKIES.get("jwt")
        print(request.COOKIES)
        if not token:
            raise AuthenticationFailed("UnAuthenticated 1!")
        
        try:
            payload = jwt.decode(token, 'secret', algorithms=['HS256'])
        except jwt.ExpiredSignatureError:
            raise AuthenticationFailed("UnAuthenticated 2!")
        
        user = User.objects.filter(id=payload['id']).first()
        serializer = UserSerializer(user)

        return Response(serializer.data)
    
...

Здесь находится settings.py


...

ALLOWED_HOSTS = []


# Application definition

INSTALLED_APPS = [
    ...
    'corsheaders',
    'rest_framework',
    ...
]

MIDDLEWARE = [
    "django.middleware.security.SecurityMiddleware",
    "django.contrib.sessions.middleware.SessionMiddleware",
    "corsheaders.middleware.CorsMiddleware",
    "django.middleware.common.CommonMiddleware",
    "django.middleware.csrf.CsrfViewMiddleware",
    "django.contrib.auth.middleware.AuthenticationMiddleware",
    "django.contrib.messages.middleware.MessageMiddleware",
    "django.middleware.clickjacking.XFrameOptionsMiddleware",
]

...

CORS_ORIGIN_WHITELIST = [
    'http://localhost:3000',
    'http://127.0.0.1:3000',
]

CORS_ALLOW_ALL_ORIGINS = True
CORS_ALLOW_CREDENTIALS = True

Что может быть причиной этого? Мне не хватает какой-то настройки в React? Я использую axios для выполнения вызовов, с единственным заголовком "Content-Type": "application/json"

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