Я использовал Django restframework для реализации API-сервера.
Также я использовал djangorestframework-jwt для аутентификации токена.
[urls.py]
from django.contrib import admin
from django.urls import path, include
from rest_framework_jwt.views import refresh_jwt_token
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('rest_auth.urls')),
path('registration/', include('rest_auth.registration.urls')),
path('refresh-token/', refresh_jwt_token),
]
Все отлично работает. Но я хочу знать, как я могу извлечь полезную нагрузку из токена?
Например, есть таблица статей.
[/ статьи / serializers.py]
from rest_framework import serializers
from . import models
class ArticleSerializer(serializers.ModelSerializer):
class Meta:
model = models.Article
fields = '__all__'
[models.py]
from django.db import models
class Article(models.Model):
subject = models.CharField(max_length=20)
content = models.CharField(max_length=100)
[views.py]
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status
from . import models, serializers
class Article(APIView):
def get(self, request, format=None):
all_article = models.Article.objects.all()
serializer = serializers.ArticleSerializer(all_article, many=True)
return Response(data=serializer.data, status=status.HTTP_200_OK)
В этом случае я хочу вернуть только правильный ответ полезную нагрузку ['userid'] == идентификатор статьи.
Как мне извлечь имя пользователя из токена jwt?
Раньше я просто использовал jwt, а не djangorestframework-jwt, поэтому просто декодируйте данные запроса и используйте их.
Но теперь я использую djangorestframework-jwt, я запутался, Как я могу это сделать.
Есть ли какое-нибудь решение по этому поводу?
Спасибо.