工做原理
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', ], }