Отсутствующий атрибут 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]