Django的我怎么可以指定每个视图
问题描述:
不同的身份验证方法差不多标题所说的话。Django的我怎么可以指定每个视图
我使用Django的1.11,我一直要求设置CAS作为身份验证方法的一些观点,并保留后面的Django模型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):
...
和任何-其它验证样的oauth2:
from oauth2_provider.decorators import protected_resource
@protected_resource()
class AnyView(APIView):
...
对于不复制 - 你可以使用不同的认证类型创建两个类,并将它们用作其他类的父类。
这是特定于Django的REST的框架?因为我没有在我的应用中使用它来做其他事情。只需要正常的django查看功能。 – aalizadeh
@aalizadeh第二个变体是的,试图用第一 –