Отсутствующий атрибут DRF Api-Key

Я пытаюсь использовать механизм DRF Api Key для аутентификации, следуя руководству здесь: https://florimondmanca.github.io/djangorestframework-api-key/guide/

Я не получаю ничего кроме ошибок, есть ли у кого-нибудь рабочий пример или что я делаю не так?

Глобальные настройки:

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES':  [
        'rest_framework_api_key.permissions.HasAPIKey'
    ]
}

Протестировано в представлении класса также

class TestingApiKey(APIView):
    permission_classes = [IsAuthenticated | HasAPIKey]
    def post(self, request):```

3 образца запросов curl:

Пример 1

curl --location --request POST 'http://127.0.0.1:8000/api/test' \
--header 'Authorization: Api-Key TiJwEHau.MF4ov6E3iz3C9KNNRAGdryH1tXfkjz8r' \
--header 'Content-Type: application/json' \
--data-raw '{
    "username" : "Testing",
    "Password"    : "Testing123"
    }'

Пример 2:

curl --location --request POST 'http://127.0.0.1:8000/api/test' \
--header 'Api-Key TiJwEHau.MF4ov6E3iz3C9KNNRAGdryH1tXfkjz8r' \
--header 'Content-Type: application/json' \
--data-raw '{
    "username" : "Testing",
    "Password"    : "Testing123"
    }'

Пример 3

curl --location --request POST 'http://127.0.0.1:8000/api/test' \
--header 'X-Api-Key: Api-Key TiJwEHau.MF4ov6E3iz3C9KNNRAGdryH1tXfkjz8r' \
--header 'Content-Type: application/json' \
--data-raw '{
    "username" : "Testing",
    "Password"    : "Testing123"
    }'

Каждый тест, который я провожу, возвращает ошибку сервера 500 с ответом:

'HasAPIKey' object has no attribute 'authenticate'

Кто-нибудь сталкивался с этой проблемой или понимает, почему я могу получить это?

Ок, это связано с добавлением глобальных настроек в файл settings.py.

Я вернулся и закомментировал следующее в файле settings.py

"""
REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES':  [,
        'rest_framework_api_key.permissions.HasAPIKey'
    ]
}
"""

После этого я добавил следующий объект класса, и все заработало нормально.

permission_classes = [IsAuthenticated | HasAPIKey]
Вернуться на верх