2017-09-04 80 views
1

不同的身份验证方法差不多标题所说的话。Django的我怎么可以指定每个视图

我使用Django的1.11,我一直要求设置CAS作为身份验证方法的一些观点,并保留后面的Django模型AUTH休息或让他们无需验证。

我正在尝试将django_cas_ng整合到我的项目中,以重定向到CAS服务器进行身份验证,但我无法弄清楚如何区分视图函数中的auth方法。 Django支持多个AUTH后端,或甚至完全定制的,但我不知道是否可以指定名称为每个视图(例如用视图修饰)一个单独的AUTH方法。

Django的允许明确指定不同的数据库和高速缓冲存储器,但是没有一种方法(或一个应用程序),以使得用于认证的后端相同的?

回答

1

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): 
    ... 

对于不复制 - 你可以使用不同的认证类型创建两个类,并将它们用作其他类的父类。

+0

这是特定于Django的REST的框架?因为我没有在我的应用中使用它来做其他事情。只需要正常的django查看功能。 – aalizadeh

+0

@aalizadeh第二个变体是的,试图用第一 –

相关问题