Django如何每个视图指定其他身份验证方法



标题所说的几乎是。

我正在使用django 1.11,我被要求将CAS作为身份验证方法设置为某些视图,并将其余部分保留在Django Model Auth后面或无身份验证。

我正在尝试将django_cas_ng集成到我的项目中,以重定向到CAS服务器进行身份验证,但是我不知道如何在视图函数之间区分AUTH方法。Django支持多个AUTH后端,甚至支持完全定制的后端,但我想知道是否可以为每个视图指定单独的auth方法(例如,使用视图装饰器)。

django允许明确指定不同的数据库和缓存,但是有没有办法(或应用程序)启用相同的身份验证后端?

django默认auth:

from django.contrib.auth.decorators import login_required
@login_required(login_url='/accounts/login/')
class AnyView(AnyViewClass):
    ...

您可以用于Aouth视图:

from rest_framework.decorators import permission_classes, authentication_classes
from rest_framework.authentication import BasicAuthentication
from rest_framework.permissions import IsAuthenticated
    @authentication_classes((BasicAuthentication,))
    @permission_classes((IsAuthenticated,))
    class AnyView(APIView):
        ...

和其他任何auth 2:

from oauth2_provider.decorators import protected_resource
@protected_resource()
class AnyView(APIView):
    ...

对于"不要复制",您可以使用不同的身材类型创建两个类,并将它们用作其他类型的父级。

最新更新