这就是标题所说的内容。
我正在使用Django 1.11并且我被要求将CAS设置为某些视图的身份验证方法,并将其余部分保留在Django模型身份验证之后,或者不进行身份验证。
我试图将django_cas_ng
集成到我的项目中以重定向到CAS服务器进行身份验证,但我无法弄清楚如何在视图函数中区分auth方法。 Django支持多个auth后端,甚至是完全自定义的后端,但我想知道是否可以为每个视图按名称指定单独的auth方法(例如使用视图装饰器)。
Django允许显式指定不同的数据库和缓存,但有没有办法(或应用程序)为身份验证后端启用相同的功能?
答案 0 :(得分:1)
Django默认身份验证:
from django.contrib.auth.decorators import login_required
@login_required(login_url='/accounts/login/')
class AnyView(AnyViewClass):
...
您可以使用aouth-views:
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):
...
对于像oauth2这样的任何其他身份验证:
from oauth2_provider.decorators import protected_resource
@protected_resource()
class AnyView(APIView):
...
对于不复制粘贴,您可以创建两个具有不同身份验证类型的类,并将它们用作其他类的父类。