首先我们再使用认证租金的时候需要先导入认证组件的模块
from rest_framework.authentication import BaseAuthentication # 这个是限制用户的信息 就是你验证的时候必须要写它里面的方法不然它的方法是返回错误的 所以你 必须要重写 它的方法
from rest_framework.exceptions import AuthenticationFailed # 这个是你的用户认证出错的时候返回额错误信息 和上面的BaseAuthentication 是一起匹配的
你的下面的定义的类再使用的时候就继承这个BaseAuthentication的时候必须要重写它内部的方法,因为如图所示它内部的方法有两个一个是有用的 一个鸟用没有
第一个方法你看了必须要重写 不然就会抛出一个错误 所以 必须在你继承的时候重写这个方法
然后你再定义的类继承这个模块的时候你的返回的时候是必须要使用这个类名 (authenticate)然后返回的也是规定好的 是一个两个参数的元组
所以它的做用就是限制 限制你的方法必须这样类写 然后返回的也必须是这样
你的类型这样来用是因为编译的时候会自动寻找到这个方法名来进行判断 然后你返回的元组也会由对应的参数来进行取值
你返回的是一个带有两个参数的元组
然后我们在界面中进行认证的使用的时候必须要 在你使用的类中写 authentication_classes = [“你的认证类”] 如果你的类要使用认证组件就必须先写authentication_classes = []这个是源码执行的时候会先找这个
ps 你认证的时候如果是前后端分离的项目 最好是定的 随机字符串来充当cookie这样有助于取值,如果是用cooike获取session你的逻辑就会很麻烦 所以就尽量使用随机字符串来定义你的验证信息
*authencation_classes = [Authencation] 是你重写的BaseAuthentication 类就是你的认证必须要把认证流程写入这里
如果你的认证要放在全局的时候就可以把配置写在全局中就是你的authencation_classes 这个配置写在全局中就可以设置为所有的类使用了,就是全局配置