权限、认证、频率源码分析

发布时间 2023-09-13 20:17:25作者: 别管鱼油我了

权限源码

 

 if not permission.has_permission(request, self)  这里的self并不是指对象,指的是视图类的对象(view),视图类中的has_permission中有三个参数(self,request,view)

 配置在视图类上一个个权限类的对象列表 [权限对象1,权限对象2]

 认证源码

 所以要从根上找

 从request中找,去Request类中找user---》方法包装成了数据属性

 因为认证类抛异常继承的是APIException,所以将只要符合APIException全部捕获。

 self就是request对象,后续 request.user就是认证类返回的第一个参数

 认证类可以配置多个,但是如果有一个返回了,后续的就不走了

self.authenticators 是request对象的属性,是在Request实例化的时候传入的,它什么时候实例化的,包装新的Reqeust时传入的---》APIView的dispatch--》