Не работает аутентификация Django Rest Framework

Я следовал руководству для создания модуля аутентификации Django в моем приложении, поэтому мне удалось создать пользователя и логин, но, к сожалению, некоторые ошибки возникли в моем проекте, когда я реализую аутентификацию, я прикрепил код и ошибку ниже, пожалуйста, посмотрите, может ли кто-нибудь помочь.

error:

django_1  | Traceback (most recent call last):
django_1  |   File "/usr/local/lib/python3.10/site-packages/django/core/handlers/exception.py", line 47, in inner
django_1  |     response = get_response(request)
django_1  |   File "/usr/local/lib/python3.10/site-packages/django/core/handlers/base.py", line 181, in _get_response
django_1  |     response = wrapped_callback(request, *callback_args, **callback_kwargs)
django_1  |   File "/usr/local/lib/python3.10/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
django_1  |     return view_func(*args, **kwargs)
django_1  |   File "/usr/local/lib/python3.10/site-packages/django/views/generic/base.py", line 70, in view
django_1  |     return self.dispatch(request, *args, **kwargs)
django_1  |   File "/usr/local/lib/python3.10/site-packages/rest_framework/views.py", line 492, in dispatch
django_1  |     request = self.initialize_request(request, *args, **kwargs)
django_1  |   File "/usr/local/lib/python3.10/site-packages/rest_framework/views.py", line 394, in initialize_request
django_1  |     authenticators=self.get_authenticators(),
django_1  |   File "/usr/local/lib/python3.10/site-packages/rest_framework/views.py", line 272, in get_authenticators
django_1  |     return [auth() for auth in self.authentication_classes]
django_1  |   File "/usr/local/lib/python3.10/site-packages/rest_framework/views.py", line 272, in <listcomp>
django_1  |     return [auth() for auth in self.authentication_classes]
django_1  | TypeError: 'str' object is not callable

аутентификация -> jwt.py

class JWTAuthentication(BaseAuthentication):
    def authenticate(self, request):
        auth_header = get_authorization_header(request)
        auth_data = auth_header.decode('utf-8')
        auth_token = auth_data.split(" ")

        if len(auth_token) != 2:
            raise exceptions.AuthenticationFailed('Token not valid')

        token = auth_token[1]

        try:
            payload = jwt.decode(token, settings.SECRET_KEY, algorithms="HS256")
            username = payload['username']
            user = User.objects.get(username=username)
            return (user, token)
            
        except jwt.ExpiredSignatureError as ex:
            raise exceptions.AuthenticationFailed('Token is expired')

        except jwt.DecodeError as ex:
            raise exceptions.AuthenticationFailed('Token is invalid')

        except User.DoesNotExist as no_user:
            raise exceptions.AuthenticationFailed('No such user')

        return super().authenticate(request)

settings.py

REST_FRAMEWORK = {
    'COERCE_DECIMAL_TO_STRING': False,
    'DEFAULT_AUTHENTICATION_CLASSES': {
        'authentication.jwt.JWTAuthentication'
    }
}
Вернуться на верх