天天看点

Django(61)认证组件源码分析

认证组件源码入口

APIView下的dispatch下的self.initial(request, *args, **kwargs),源码如下:

三大认证

认证组件作用:校验用户 - 游客、合法用户、非法用户

游客:代表校验通过,直接进入下一步校验(权限校验)

合法用户:代表校验通过,将用户存储在request.user中,再进入下一步校验(权限校验)

非法用户:代表校验失败,抛出异常,返回403权限异常结果

权限组件:校验用户权限 - 必须登录、所有用户、登录读写游客只读、自定义用户角色

认证通过:可以进入下一步校验(频率认证)

认证失败:抛出异常,返回403权限异常结果

频率组件:限制视图接口被访问的频率次数 - 限制的条件(IP、id、唯一键)、频率周期时间(s、m、h)、频率的次数(3/s)

没有达到限次:正常访问接口

达到限次:限制时间内不能访问,限制时间达到后,可以重新访问

继续阅读