restframework-jwt如何处理有效载荷?

时间:2018-06-28 08:16:00

标签: django-rest-framework django-rest-framework-jwt

我使用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),
]

一切正常。但是我想知道如何从令牌中提取有效载荷?

例如,有文章表。

[/ 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'] ==文章的用户ID。

如何从jwt令牌中提取用户名?

以前,我只是使用jwt而不是djangorestframework-jwt,所以只需解码请求数据并使用它即可。

但是现在我使用djangorestframework-jwt,我感到困惑。

对此有什么解决办法吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

[已解决]

https://getblimp.github.io/django-rest-framework-jwt/

我只是重写所有功能,并为我的应用程序进行了修改。

并将其指定为JWT_AUTH。