Как создать конечную точку API с django rest framework jwt для пользователя logged_in? - PullRequest
0 голосов
/ 19 апреля 2020

Я пытаюсь создать конечную точку, когда пользователь вошел в систему, чтобы проверить статус пользователя, вошедшего в систему реагировать js. Для моего бэкэнда я использую django rest-framework. Вот код бэкенда.

serializers.py:

from rest_framework import serializers;
from rest_framework_jwt.settings import api_settings
from django.contrib.auth.models import User

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ('username',)

# handle signups only
class UserSerializerWithToken(serializers.ModelSerializer):

    token = serializers.SerializerMethodField()
    password = serializers.CharField(write_only=True)

    def get_token(self, obj):
        jwt_payload_handler = api_settings.JWT_PAYLOAD_HANDLER
        jwt_encode_handler = api_settings.JWT_ENCODE_HANDLER

        payload = jwt_payload_handler(obj)
        token = jwt_encode_handler(payload)
        return token

    def create(self, validated_data):
        password = validated_data.pop('password', None)
        inst = self.Meta.model(**validated_data)
        if password is not None:
            inst.set_password(password)
        inst.save()
        return inst

    class Meta:
        fields = ('token', 'username', 'password')

urls.py: следующий код - это место, где я бы создал конечную точку

from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
from rest_framework_jwt.views import obtain_jwt_token
from rest_framework_jwt.views import verify_jwt_token

urlpatterns = [
    path('api-auth/', include('rest_framework.urls')),
    # path('rest-auth/', include('rest_auth.urls')),
    # path('rest-auth/registration/', include('rest_auth.registration.urls')),
    path('token-auth/', obtain_jwt_token),
    path('api-token-verify/', verify_jwt_token),
    path('login/', include('login.urls')),
    path('admin/', admin.site.urls),
    path('api/', include('menus.api.urls')),
    path('phlogapi/', include('phlogfeeder.phlogapi.urls'))
]

if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

Я запутался в том, как создать конечную точку с помощью jwt.

...