一、基本流程
1、建一个任意命名的py文件。
2、建一个类,继承rest_framework.authentication.BaseAuthentication,这个类就是认证器类。
3、在认证器类中重写authenticate方法,包含认证的逻辑。
4、若认证通过返回两个值,第一个值会赋给request.user,第二个值会赋给request.auth。
5、若认证失败,抛出异常APIException或者AuthenticationFailed(推荐使用,表意更明确)。
二、使用方式:可以配置多个认证器,从左往右依次执行,但是一旦其中一个有值返回了,后续则不会继续执行。
1、全局使用:在项目的setting.py中:
REST_FRAMEWORK={ "DEFAULT_AUTHENTICATION_CLASSES":["app01.app_auth.Authenticator1","app01.app_auth.Authenticator2"] }
2、局部使用:在视图类中:
authentication_classes=[Authenticator1,Authenticator2]
3、局部禁用
authentication_classes=[]