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)
没有达到限次:正常访问接口
达到限次:限制时间内不能访问,限制时间达到后,可以重新访问
 

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/165762.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • java如何向数组里添加元素

    java如何向数组里添加元素java篇哇,菜鸟第一次写这个东西,当加深印象,大佬们请略过,欢迎有错指出。向数组里添加一个元素怎么添加,这儿总结有三种方法:1、一般数组是不能添加元素的,因为他们在初始化时就已定好长度了,不能改变长度。但有个可以改变大小的数组为ArrayList,即可以定义一个ArrayList数组,然后用add(element)方法往里添加元素即可,还可add(index,element)往指…

  • 随机森林(原理/样例实现/参数调优)

    决策树决策树与随机森林都属于机器学习中监督学习的范畴,主要用于分类问题。决策树算法有这几种:ID3、C4.5、CART,基于决策树的算法有bagging、随机森林、GBDT等。决策树是一种利用树形结构进行决策的算法,对于样本数据根据已知条件或叫特征进行分叉,最终建立一棵树,树的叶子结节标识最终决策。新来的数据便可以根据这棵树进行判断。随机森林是一种通过多棵决策树进行优化决策的算法。案例:

  • cmd命令如何切换盘符_cmd命令修改盘符

    cmd命令如何切换盘符_cmd命令修改盘符返回上一级目录:cd..进入盘符根目录(例如进入E盘): e:

  • plsqldev连oracle,plsqldev怎么联接oracle客户端

    plsqldev连oracle,plsqldev怎么联接oracle客户端如果你的电脑是64位的计算机,你需要安装64位的oracle客户端,但是PL/SQLdev目前没有64位的,因此你要手动设置一个32位的客户端。pl/sql不用装64位的,因为它能支持32位和64位。如果你的数据库是64位,那么你就得装一个Oracle32位的客户端,直接去oracle官方下载即可。安装完毕之后,需要进行配置:app\Administrator\product\11.2.0\…

  • 解决虚拟机选择桥接模式连不上网

    解决虚拟机选择桥接模式连不上网虚拟机装的centos7,使用桥接模式,且与主机在同一网段,主机与虚拟机可以互相ping通,且主机使用secureCRT可以连接虚拟机。主机可以上网,但是虚拟机里centos就是连不上网,以前都可以上网。再查了一堆资料都没解决后,总算找到一篇解决办法。原文:原文地址保证你Vmware里面的虚拟机是关机状态 右键点击电脑屏幕右下角小电脑图标,选择打开网络与共享中心,然后点…

  • ResponseBody浅析[通俗易懂]

    ResponseBody浅析[通俗易懂]@[TOC]ResponseBody浅析欢迎使用Markdown编辑器你好!这是你第一次使用Markdown编辑器所展示的欢迎页。如果你想学习如何使用Markdown编辑器,可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:…

发表回复

您的电子邮箱地址不会被公开。

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