zoukankan      html  css  js  c++  java
  • drf三大认证组件

    三大认证

    源码入口

    # drf的APIView类中的dispatch方法中的 self.initial(request, *args, **kwargs)

    img

    跳转到initial方法

    img

     

    认证组件

    点击perform_authentication方法

    img

    user其实是用property装饰器装饰的方法属性

    而且这里是request.user

    request是drf重新封装的request,并且是一个对象

    进入request.user方法

    现在是Request类中,所有self都是Request类的实例化

    img

     

    点击进入self._authenticate方法中

    img

    self.authenticators 属性是在实例化时传入

    Request实例化

    img

     

    在APIView中的dispatch方法中Request已经进行了实例化

    现在在APIView类中

    img

    进入initialize_request方法

    img

    点击进入get_authenticators方法

    img

    返回一个列表,列表套对象

    正好解释了在Request类中_authenticate方法,为什么要进行遍历取值

     

    我们点击permission_classes进去看看是哪些类

    img

    看到是这个,说明我们可以进行全局配置,也可以进行局部配置

     

    进入settings文件

    img

    我们进authentication中看看SessionAuthentication和BasicAuthentication这两个类

    在request类中的_authenticate方法中,遍历出来的对象都是SessionAuthentication和BasicAuthentication这两个类的实例化,都调用了authenticate方法,而且传入了self参数

    img

    authenticate方法需要传入两个参数,一个self,一个为request

     

    BasicAuthentication的authenticate方法

    img

    没有这些属性,直接返回None

    SessionAuthentication的authenticate方法

    img

    没有user属性,返回None

    在Response中

    img

    认证直接通过

    大致走一遍认证组件生命周期,后期都会自定义认证组件

     

  • 相关阅读:
    安装activeMQ(解压版)
    java匿名发送邮件(不需要登录)
    poi excel导入整数数字自动加小数点解决
    读取excel表中的数据
    DES加密解密实现
    验证码实现(google)
    下载文件到电脑本地
    Properties条件查询(适用于StorageAPI操作数据库)
    java位运算
    python测试开发工具库汇总(转载)
  • 原文地址:https://www.cnblogs.com/asdaa/p/11690575.html
Copyright © 2011-2022 走看看