Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django rest framework restframework jwt如何处理有效负载?_Django Rest Framework_Django Rest Framework Jwt - Fatal编程技术网

Django rest framework restframework jwt如何处理有效负载?

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.

我使用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.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',
}