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

Django(61)认证组件源码分析认证组件源码入口APIView下的dispatch下的self.initial(request,*args,**kwargs),源码如下:definitial(self,request,

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

认证组件源码入口

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

def initial(self, request, *args, **kwargs):
    """
    在调用方法处理程序之前运行任何需要发生的事情
    """
    # 获取请求的后缀格式
    self.format_kwarg = self.get_format_suffix(**kwargs)

    # 确定使用哪种渲染器和媒体类型来渲染响应,并存储
    neg = self.perform_content_negotiation(request)
    request.accepted_renderer, request.accepted_media_type = neg

    # 如果正在使用版本控制,则确定 API 版本。
    version, scheme = self.determine_version(request, *args, **kwargs)
    request.version, request.versioning_scheme = version, scheme

    # 3大认证,确保传入请求被允许
    self.perform_authentication(request)
    self.check_permissions(request)
    self.check_throttles(request)

 

三大认证

 

认证组件

self.perform_authentication(request)

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

  • 游客:代表校验通过,直接进入下一步校验(权限校验)
  • 合法用户:代表校验通过,将用户存储在request.user中,再进入下一步校验(权限校验)
  • 非法用户:代表校验失败,抛出异常,返回403权限异常结果

 

权限组件

self.check_permissions(request)

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

  • 认证通过:可以进入下一步校验(频率认证)
  • 认证失败:抛出异常,返回403权限异常结果

 

频率组件

self.check_throttles(request)

频率组件:限制视图接口被访问的频率次数 – 限制的条件(IP、id、唯一键)频率周期时间(s、m、h)频率的次数(3/s)
没有达到限次:正常访问接口
达到限次:限制时间内不能访问,限制时间达到后,可以重新访问
 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/164880.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月29日 下午2:00
下一篇 2022年7月29日 下午2:16


相关推荐

  • Qt单元测试工具 QTestlib

    Qt单元测试工具 QTestlib优点 QTestLib 提供了单元测试框架的基本功能 并提供了针对 GUI 测试的扩展功能 特性详细描述轻量级 QTestlib 只包含 6000 行代码和 60 个导出符号 自包含对于非 GUI 测试 QTestlib 只需要 Qt 核心库的几个符号 快速测试

    2026年3月18日
    2
  • java绘图板

    java绘图板

    2021年12月7日
    35
  • 2022价值3888开源企业发卡网源码/全网对接/全新UI风格/完美运营

    2022价值3888开源企业发卡网源码/全网对接/全新UI风格/完美运营系统是全开源的,功能很多就不一一介绍了,喜欢就拿走,互站上卖3888免费开源,100%能搭建!发卡系统功能亮点介绍:1:已接入易支付接口/支持qq/微信/支付宝2:全网商品对接,店铺对接一秒完成对接,!3:商品池系统/供货系统/代理系统/对接码对接商品4:店铺音乐支付接口/缩我短网址接口/销售模版主题设置5:后台新增一键添加支付接口/商品池权限/推荐商品权限/商家保证金6:平均有15套pc售卡模版,3套手机售卡模版7:一些系统还带有后门,我这个系统完全无后门8:本系统不敢说全网最牛,但是我个人觉得很不错注

    2022年7月14日
    22
  • 设计模式: 迭代模式

    设计模式: 迭代模式

    2022年1月14日
    53
  • 模拟电路–相位可调移相器的设计

    模拟电路–相位可调移相器的设计本文原文来自于本人新浪博客 http blog sina com cn s blog 12f79c9b9010 html 有源移相器的基本电路图如下所示 因为模电教科书上没有相关介绍 童诗白版 笔者也是奇懒无比 这么简单的电路记了好多次都没记住 索性记下来以备不时之需吧 电路结构比较简单 几个元件的功能如下 C1 影响着最大移向角度 15nF 的时候大概是 90 度

    2026年3月18日
    2
  • hmac 签名_em球衣签名

    hmac 签名_em球衣签名在提供第三方接口的时候,我们需要确认:1.消息未被其他人篡改(签名和验证签名)2.从消息中确认第三方的身份(appid)因为hash是不可逆的,所以签名的过程是不可逆的;HMACSHA1是从SHA1哈希函数构造的一种键控哈希算法,被用作HMAC(基于哈希的消息验证代码)。此HMAC进程将密钥与消息数据混合,使用哈希函数对混合结果进行哈希计算,将所得哈希值与该密钥混…

    2025年7月31日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号