Я не могу проверить jwt-токен [django].

введите описание изображения здесь

Я использую drf-jwt : https://styria-digital.github.io/django-rest-framework-jwt/

я сделал жетон

def jwt_login(user: User):
        jwt_payload_handler = api_settings.JWT_PAYLOAD_HANDLER
        jwt_encode_handler = api_settings.JWT_ENCODE_HANDLER

        payload = jwt_payload_handler(user)
        token = jwt_encode_handler(payload)
        return token

и модель пользователя здесь

class User(AbstractUser):
    username        = None
    email           = models.EmailField(unique=True, db_index=True)
    secret_key      = models.CharField(max_length=255, default=get_random_secret_key)
    
    USERNAME_FIELD  = 'email'
    REQUIRED_FIELDS = []
    
    class Meta:
        swappable = 'AUTH_USER_MODEL'

    @property
    def name(self):
        if not self.last_name:
            return self.first_name.capitalize()

        return f'{self.first_name.capitalize()} {self.last_name.capitalize()}'

И урлы

path('api-jwt-auth/', verify_jwt_token),
path('api-jwt-auth/2', obtain_jwt_token),
path('api-jwt-auth/3', refresh_jwt_token),

Настройки

JWT_EXPIRATION_DELTA_DEFAULT = 2.628e+6  # 1 month in seconds
JWT_AUTH = {
    'JWT_EXPIRATION_DELTA': datetime.timedelta(
        seconds=env.int(
            'DJANGO_JWT_EXPIRATION_DELTA',
            default=JWT_EXPIRATION_DELTA_DEFAULT
        )
    ),
    'JWT_AUTH_HEADER_PREFIX': 'JWT',
    'JWT_GET_USER_SECRET_KEY': lambda user: user.secret_key,
    'JWT_RESPONSE_PAYLOAD_HANDLER': 'pick_restful.selectors.jwt_response_payload_handler',
    'JWT_AUTH_COOKIE': 'jwt_token',
    'JWT_AUTH_COOKIE_SAMESITE': 'None'
}

Я получил jwt-токен Но я не могу проверить этот токен в /api-jwt-auth/

эта ошибка

error.png

что случилось?

Внутренняя ошибка сервера: /api-jwt-auth/ Traceback (последний последний вызов): File "/home/ec2-user/back-end/venv/pick/lib/python3.7/site-packages/django/core/handlers/exception.py", line 47, in inner response = get_response(request) Файл "/home/ec2-user/back-end/venv/pick/lib/python3.7/site-packages/django/core/handlers/base.py", строка 181, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/home/ec2-user/back-end/venv/pick/lib/python3.7/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view return view_func(*args, **kwargs) Файл "/home/ec2-user/back-end/venv/pick/lib/python3.7/site-packages/django/views/generic/base.py", строка 70, in view return self.dispatch(request, *args, **kwargs) Файл "/home/ec2-user/back-end/venv/pick/lib/python3.7/site-packages/rest_framework/views.py", строка 509, в dispatch response = self.handle_exception(exc) Файл "/home/ec2-user/back-end/venv/pick/lib/python3.7/site-packages/rest_framework/views.py", строка 469, in handle_exception self.raise_uncaught_exception(exc) Файл "/home/ec2-user/back-end/venv/pick/lib/python3.7/site-packages/rest_framework/views.py", строка 480, in raise_uncaught_exception raise exc Файл "/home/ec2-user/back-end/venv/pick/lib/python3.7/site-packages/rest_framework/views.py", строка 506, в dispatch response = handler(request, *args, **kwargs) Файл "/home/ec2-user/back-end/venv/pick/lib/python3.7/site-packages/rest_framework_jwt/views.py", строка 34, в post jwt_create_response_payload(token, user, request, issued_at) Файл "/home/ec2-user/back-end/venv/pick/lib/python3.7/site-packages/rest_framework_jwt/authentication.py", строка 58, в jwt_create_response_payload return api_settings.JWT_RESPONSE_PAYLOAD_HANDLER(*args, **kwargs) TypeError: jwt_response_payload_handler() принимает от 1 до 3 позиционных аргументов, но было задано 4

png

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