Как реализовать аутентификацию JWT в веб-приложении после входа в систему зарегистрированного пользователя? - PullRequest
0 голосов
/ 04 ноября 2019

Я новичок в Django и хочу внедрить аутентификацию JWT, чтобы просматривать данные API только для зарегистрированного пользователя . Может кто-нибудь подсказать, как структурировать реализацию JWT в Django (версия 2.1)?

1 Ответ

0 голосов
/ 04 ноября 2019

Вы уже упоминали, что используете django-rest-framework и django-rest-framework-simplejwt. Я бы предложил создать отдельный APIView для получения сведений о текущем вошедшем в систему пользователе. Вам также следует создать сериализатор для модели User.

Если вы правильно добавили нижеприведенную декларацию в свои настройки, тогда аутентифицированный пользователь должен быть доступен в request.user.

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework_simplejwt.authentication.JWTAuthentication',
    ),
}
.

Что-то вроде этого должно быть достаточно в вашем случае:

from rest_framework.views import APIView
from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response


class UserDetailsAPIView(APIView):
    permission_classes = [IsAuthenticated]

    def get(self, request, *args, **kwargs):
        user = request.user
        profile = request.user.profile
        data = {
            'username': request.user.username,
            'email': request.user.email,
            'salary': profile.salary,
            'company': profile.company,
            'address': profile.address,
            'gender': profile.gender,
        }
        return Response(data)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...