Django rest framework restframework jwt如何处理有效负载?
我使用Django restframework实现api服务器 我还使用djangorestframework jwt进行令牌身份验证 [url.py]Django rest framework restframework jwt如何处理有效负载?,django-rest-framework,django-rest-framework-jwt,Django Rest Framework,Django Rest Framework Jwt,我使用Django restframework实现api服务器 我还使用djangorestframework jwt进行令牌身份验证 [url.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.
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),
]
一切正常。但我想知道如何从令牌中提取有效负载
例如,有一个项目表
[/article/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']==文章的userid
如何从jwt令牌中提取用户名
前面,我只是使用jwt而不是djangorestframework jwt,所以只需解码请求数据并使用它
但是现在我使用djangorestframeworkjwt,我不知道该怎么做
有什么解决办法吗
谢谢。我在这里查看了图书馆的文档后解决了这个问题 我需要重写所有函数以返回应用程序中所需的自定义响应 还有我们需要在我的应用程序的settings.py中的JWT_AUTH中指定的任何其他设置 i、 e 并且需要在我的应用程序的util文件夹中定义
jwt\u response\u payload\u handler
函数来覆盖默认函数
JWT_AUTH = {
'JWT_RESPONSE_PAYLOAD_HANDLER':
'myapp.utils.jwt_response_payload_handler',
}