工做原理
python
前臺對於用戶信息進行的判斷
django
1)若是前臺沒有攜帶認證信息,直接定義爲遊客數組
2)若是前臺攜帶了認證信息並認證經過,定位爲登陸用戶,將登陸的用戶user對象保存在 requset.user 中session
3)若是前臺攜帶了認證信息但沒有認證經過,通常都定義爲遊客框架
4 ) 能夠自定義爲非法用戶,拋出 認證失敗 異常,可是不建議直接操做
,能夠交給權限組件進一步處理rest_framework.exceptions 的 AuthenticationFailed網站
參數
rest
BasicAuthentication : 基本認證code
SessionAuthentication : session認證對象
工做原理
get
相關設置
即在咱們自定義的視圖類開頭
設置
# 認證 下面不必定是[],也能夠()就是須要在數組當中,多個類用,隔開 # 局部取消認證組件:authentication_classes = [] # 區別啓用認證組件:authentication_classes = [認證類們] # 填寫的參數BasicAuthentication,SessionAuthentication # 權限 # 局部取消權限組件:permission_classes = [] # 區別啓用權限組件:permission_classes = [權限類們] # 填寫的參數AllowAny
如
from rest_framework.authentication import SessionAuthentication, BasicAuthentication from rest_framework.views import APIView from rest_framework.permissions import IsAuthenticated class 類名(APIView): authentication_classes = (SessionAuthentication, BasicAuthentication) permission_classes = [IsAuthenticated,] ...........
在setting
中設置
REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': [ # django默認session校驗:校驗規則 遊客 及 登陸用戶 'rest_framework.authentication.SessionAuthentication', 'rest_framework.authentication.BasicAuthentication', ], 'DEFAULT_PERMISSION_CLASSES': [ # 'rest_framework.permissions.AllowAny', # 全局配置:一站式網站(全部操做都須要登陸後才能訪問) # 'rest_framework.permissions.IsAuthenticated', ], }