У меня проблемы с установкой 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", и он был заблокирован, поскольку пришел из межсайтового ответа...
Здесь находится 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"