I can't verify jwt-token [django]

Viewed 158

enter image description here

I use drf-jwt : https://styria-digital.github.io/django-rest-framework-jwt/

i made token

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

and User model here

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()}'

And Urls

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

And Settings

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'
}

I got jwt-token But I can't verify this token in /api-jwt-auth/

this error

error.png

what's wrong?

Internal Server Error: /api-jwt-auth/ Traceback (most recent call last):   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)   File "/home/ec2-user/back-end/venv/pick/lib/python3.7/site-packages/django/core/handlers/base.py", line 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)   File "/home/ec2-user/back-end/venv/pick/lib/python3.7/site-packages/django/views/generic/base.py", line 70, in view
    return self.dispatch(request, *args, **kwargs)   File "/home/ec2-user/back-end/venv/pick/lib/python3.7/site-packages/rest_framework/views.py", line 509, in dispatch
    response = self.handle_exception(exc)   File "/home/ec2-user/back-end/venv/pick/lib/python3.7/site-packages/rest_framework/views.py", line 469, in handle_exception
    self.raise_uncaught_exception(exc)   File "/home/ec2-user/back-end/venv/pick/lib/python3.7/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception
    raise exc   File "/home/ec2-user/back-end/venv/pick/lib/python3.7/site-packages/rest_framework/views.py", line 506, in dispatch
    response = handler(request, *args, **kwargs)   File "/home/ec2-user/back-end/venv/pick/lib/python3.7/site-packages/rest_framework_jwt/views.py", line 34, in post
    jwt_create_response_payload(token, user, request, issued_at)   File "/home/ec2-user/back-end/venv/pick/lib/python3.7/site-packages/rest_framework_jwt/authentication.py", line 58, in jwt_create_response_payload
    return api_settings.JWT_RESPONSE_PAYLOAD_HANDLER(*args, **kwargs) TypeError: jwt_response_payload_handler() takes from 1 to 3 positional arguments but 4 were given

png

0 Answers
Related