restframework-jwt как я могу обработать полезную нагрузку? - PullRequest
0 голосов
/ 28 июня 2018

Я использовал 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, я запутался, Как я могу это сделать.

Есть ли какое-нибудь решение по этому поводу?

Спасибо.

1 Ответ

0 голосов
/ 28 июня 2018

[РЕШИТЬ]

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

Я просто переопределил все функции и изменил для своего приложения.

И указать это JWT_AUTH.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...