Как добавить аутентификацию django rest framework в Route? - PullRequest
0 голосов
/ 24 мая 2019

Как добавить аутентификацию django rest framework в Route?

Я использую JWT для аутентификации моего приложения. Все отлично работает.

Что мне нужно знать, так это как я могу аутентифицировать конкретный маршрут на основе REST Framework и JWT

пример

from rest_framework.permissions import IsAuthenticated

path(r'modulo/app/aula/<modalidade>', IsAuthenticated  AppAulaAdd.as_view(),     name='app_aula')

или

from rest_framework.decorators import authentication_classes

path(r'modulo/app/aula/<modalidade>',  authentication_classes(AppAulaAdd.as_view()),     name='app_aula')

Оба не работают.

1 Ответ

1 голос
/ 24 мая 2019

Вы смешиваете понятия в своем вопросе. Классы разрешений управляют доступом к ресурсам на основе статуса пользователя в вашей системе или в сеансе (т. Е. IsAuthenticated, IsStaff и т. Д.), В то время как классы аутентификации управляют методом аутентификации пользователя, например BasicAuthentication или, в вашем случае, JSONWebTokenAuthentication. Кроме того, вы должны добавлять оба типа классов непосредственно в свои представления, это лучшая практика (из https://www.django -rest-framework.org / api-guide / authentication /) :

class ExampleView(APIView):
    authentication_classes = (SessionAuthentication, BasicAuthentication)
    permission_classes = (IsAuthenticated,)

Но если по какой-то причине на 100% необходимо добавить разрешение в ваш файл (маршруты) urls, вы можете сделать следующее:

from rest_framework.decorators import permission_classes
from rest_framework.permissions import IsAuthenticated

path(r'modulo/app/aula/<modalidade>', (permission_classes([IsAuthenticated])(AppAulaAdd)).as_view(), name='app_aula')

Надеюсь, это поможет.

...