2017-09-04 62 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第二個變體是的,試圖用第一 –