Chrome игнорирует мои попытки снять cookies (Django)

Я пытаюсь удалить куки на https-сайте. Куки были установлены сервером после успешного входа в систему, но chrome не снимает куки при выходе из системы, хотя заголовок Set-Cookie присутствует в заголовках ответа с правильными директивами.

@api_view(['POST'])
def login(request):
    data = request.data
    email = data.get('email')
    password = data.get('password')
    
    if not email or not password:
        return JsonResponse({'error': 'Email and password are required'}, status=400)
    
    user = authenticate_user(email, password)
    
    if user is not None:
        token = RefreshToken.for_user(user)
        # Create response object
        response = JsonResponse({'message': 'Login successful'})
        
        # Set the token in a secure, HTTP-only cookie
        response.set_cookie(
            key='access_token',
            value=str(token.access_token),
            httponly=True,
            secure=True,  # Ensure you use HTTPS
            samesite='Lax',
            path='/',
            domain='my-domain.com'
        )
        
        return response
    else:
        # Authentication failed
        return JsonResponse({'error': 'Invalid credentials'}, status=401)

Вот мой метод выхода из системы:

@api_view(['POST'])
def logout(request):
    # Create response object
    response = JsonResponse({'message': 'Logout successful'})
    
    response.set_cookie(
        'access_token',
        value='',
        max_age=0,
        path='/',
        secure=True,
        httponly=True,
        samesite='Lax',
        domain='my-domain.com'
    )
    
    return response

Дополнительно в файле settings.py у меня есть следующее:

SECURE_SSL_REDIRECT = True
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
SESSION_COOKIE_HTTPONLY = True
SESSION_COOKIE_SAMESITE = 'Lax'
SESSION_COOKIE_PATH = '/'
CSRF_COOKIE_PATH = '/'
SESSION_COOKIE_DOMAIN = 'my-domain.com'
CSRF_COOKIE_DOMAIN = 'my-domain.com'

Я тестировал в Firefox, а также в режиме инкогнито. Что может быть причиной того, что файлы cookie не удаляются при моем способе выхода из системы?

Мне удалось заставить его работать. Я вызывал свою функцию входа в redux в обработчике React, который не использовал async await, что могло вызвать проблемы с применением заголовка Set-Cookie. Кроме того, я хочу поблагодарить @AbdulAzizBarkat за указание на конфиг samesite='None', необходимый для межсайтовых запросов.

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