Django Rest Framework - Cookies исчезают после перенаправления/обновления

Я впервые работаю с jwt-токенами для входа в систему и хранением этого токена бэкендом в http only cookies и еще одной cookie. Проблема в том, что на странице входа в систему, когда я вхожу в систему... куки устанавливаются правильно, но когда страница перенаправляется на страницу профиля, куки теряются и вход становится выходом из системы. Я обновила страницу и обнаружила ту же проблему. Пожалуйста, помогите мне. Это происходит только на производстве, но не в разработке.

Мои домены -

В разработке

frontend - 127.0.0.1:5501

backend - 127.0.0.1:8000

В производстве

frontend - https://xyz.netlify.app

backend - https://xyz-web.herokuapp.com

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

CSRF_COOKIE_HTTPONLY = False

CSRF_COOKIE_SAMESITE = 'None'

ACCESS_CONTROL_ALLOW_HEADERS = True


CORS_ALLOW_HEADERS = [
'accept',
'accept-encoding',
'authorization',
'content-type',
'dnt',
'origin',
'user-agent',
'x-csrftoken',
'x-requested-with',
'Access-Control-Allow-Origin'
]



# CORS_ORIGIN_ALLOW_ALL=True
CORS_ALLOW_METHODS = [
'DELETE',
'GET',
'OPTIONS',
'PATCH',
'POST',
'PUT',
]
CORS_ALLOW_CREDENTIALS = True

CORS_ALLOWED_ORIGINS = [
    "http://127.0.0.1:5501",
   
    "https://xyz.netlify.app"
]

Мой вид входа устанавливает куки после входа

def get_tokens_for_user(user):
    refresh = RefreshToken.for_user(user)
        
    return {
        'refresh': str(refresh),
        'access': str(refresh.access_token),
    }

class LoginView(APIView):
    def post(self,request,format=None):
        
    
        data = request.data
        
        response = Response()
        username = data.get('username', None)
        password = data.get('password', None)
        user = authenticate(username=username, password=password)
        if user is not None:
            if user.is_active:
                data = get_tokens_for_user(user)
                response.set_cookie(
                                    key = settings.SIMPLE_JWT['AUTH_COOKIE'], 
                                    value = data["access"],
                                    expires = settings.SIMPLE_JWT['ACCESS_TOKEN_LIFETIME'],
                                    secure = settings.SIMPLE_JWT['AUTH_COOKIE_SECURE'],
                                    httponly = settings.SIMPLE_JWT['AUTH_COOKIE_HTTP_ONLY'],
                                    samesite = settings.SIMPLE_JWT['AUTH_COOKIE_SAMESITE'],
                                    
                                    )
                response.set_cookie(
                                    key = "tokenvalidate", 
                                
                                    value = data["access"][0:len(data['access'])//2],
                                    expires = settings.SIMPLE_JWT['ACCESS_TOKEN_LIFETIME'],
                                    secure = settings.SIMPLE_JWT['AUTH_COOKIE_SECURE'],
                                    httponly = False,
                                    samesite = settings.SIMPLE_JWT['AUTH_COOKIE_SAMESITE'], #setting this cookie for logout functionality. frontend can remove this non httponly cookie using js in logout function.
                                        #if this cookie is not sent in request then the authorization will be failed.
                                        
                                        
                                    )
                
                csrf.get_token(request)
                response.data = {"Success" : "Login successfully","data":data}
                
                return response
            else:
                return Response({"No active" : "This account is not active!!"},status=status.HTTP_404_NOT_FOUND)
        else:
            return Response({"Invalid" : "Invalid username or password!!"},status=status.HTTP_404_NOT_FOUND)

Значения, используемые в представлениях

 # ////////////////custom settings/////////////source : stackoverflow/////////////////////
    'AUTH_COOKIE': 'access_token', 
    'AUTH_COOKIE_DOMAIN': None,     # A string like "example.com", or None for standard domain cookie.
    'AUTH_COOKIE_SECURE': True,    # Whether the auth cookies should be secure (https:// only).
    'AUTH_COOKIE_HTTP_ONLY' : True, # Http only cookie flag.It's not fetch by javascript.
    'AUTH_COOKIE_PATH': '/',        # The path of the auth cookie.
    'AUTH_COOKIE_SAMESITE': 'None',  # Whether to set the flag restricting cookie leaks on cross-site requests.
                                # This can be 'Lax', 'Strict', or None to disable the flag.

** Даже все три куки, включая куки csrf, исчезают, когда я делаю редирект/обновляю страницу. Пожалуйста, помогите мне. Я пытаюсь решить эту проблему. Я отправляю учетные данные во всех вызовах выборки с фронтенда. Должен ли я устанавливать cookies во всех представлениях? Пожалуйста, помогите. **

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