如何在Route中添加django rest框架身份验证?

时间:2019-05-24 06:20:31

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

如何在Route中添加django rest框架身份验证?

我正在使用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 个答案:

答案 0 :(得分:1)

您要在问题中混入概念。权限类根据系统或会话中用户的状态(即IsAuthenticated,IsStaff等)控制对资源的访问,而身份验证类则控制对用户进行身份验证的方法,例如BasicAuthentication或JSONWebTokenAuthentication。另外,您应该直接在视图中添加两种类型的类,这是更好的做法(来自https://www.django-rest-framework.org/api-guide/authentication/)

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

但是,如果出于某种原因,必须在url文件(路由)中添加权限,则可以执行以下操作:

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')

希望有帮助。