How to get username from Django Rest Framework JWT token How to get username from Django Rest Framework JWT token django django

How to get username from Django Rest Framework JWT token


For me with Django (2.0.1), djangorestframework (3.7.7), djangorestframework-jwt (1.11.0).

I had to do following to get my use back user from token:

        token = request.META.get('HTTP_AUTHORIZATION', " ").split(' ')[1]        print(token)        data = {'token': token}        try:            valid_data = VerifyJSONWebTokenSerializer().validate(data)            user = valid_data['user']            request.user = user        except ValidationError as v:            print("validation error", v)

Or you can write a middleware that would set user based on their token.


For me, this worked as RestFrameworkJWT is no longer maintained.So I used the rest_framework_simplejwt package.

from rest_framework_simplejwt.backends import TokenBackendtoken = request.META.get('HTTP_AUTHORIZATION', " ").split(' ')[1]data = {'token': token}   try:      valid_data = TokenBackend(algorithm='HS256').decode(token,verify=False)      user = valid_data['user']      request.user = user   except ValidationError as v:      print("validation error", v)


Basically you could do this

username = request.user.username