Как получить имя пользователя из Django Rest Framework JWT token
Я использую Django Rest Framework, и я включил сторонний пакет под названием Rest framework JWT Auth. Он возвращает токен при отправке имени пользователя / пароля на определенный маршрут. Тогда токен необходим для разрешения на определенные маршруты. Однако, как я могу получить имя пользователя из маркера? Я просмотрел всю документацию пакета и прошел через StackOverflow. Это веб-токен JSON, и я предполагаю, что есть такой метод, как username = decode_token(token)
но я не нашел такого метод.
2 ответов
для меня с Django (2.0.1), djangorestframework (3.7.7), djangorestframework-jwt (1.11.0).
мне пришлось сделать следующее, чтобы вернуть пользователя из токена:
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)
или вы можете написать промежуточное ПО, которое установит пользователя на основе их токена.
вы можете прочитать Пошаговое Руководство здесь: http://blog.sadafnoor.me/blog/a-django-rest-framework-jwt-middleware-to-support-request-user/