• csrf_token之全局认证与局部认证


    1、settings.py没有注释到csrf。当post请求的方式会报错。

    接下来就解决问题!

    1. django中间件        最多5个                  
    - process_request     请求                 
    - process_view                 
    - process_response    相应                 
    - process_exception   异常                 
    - process_render_template 
                 
    2. 中间件执行流程:             
    process_request>路由匹配 找到函数不执行>process_view 
    >视图函数>process_response   
               
    3. 中间件的作用                 
    - 权限                 
    - 用户登录验证     
    
    4. django的csrf实现功能:        
    csrf在process_view方法                        
    - 检查视图是否被@csrf_exempt(免除csrf认证)                         
    - 去请求体或cookie中获取token

    1.FBV:情况一:csrf打开,个别不需要csrf认证。在方法的上方加@csrf_exempt 。这是全局使用csrf。

    2.FBV:情况二:csrf注释,个别需要csrf认证。加@csrf_protect ,这是局部使用csrf。

    1.CBV:情况一:csrf打开,个别不需要csrf认证。@method_decorator  全局使用csrf。

    运行结果:加在单独方法上是不行的,还是会报错。  

    方式一:

    方式二:加载class类上,指定方法名。装饰的位置不一样。

    总结:
    - 本质,基于反射来实现
    - 流程:路由,view,dispatch(反射)
    - 取消csrf认证(装饰器要加到dispatch方法上且method_decorator装饰)
                    
    扩展:
    - csrf 
    - 基于中间件的process_view方法
    - 装饰器给单独函数进行设置(认证或无需认证)
  • 相关阅读:
    gulp 相关文章
    webpack相关文章
    nodejs 教程
    MVC,MVP 和 MVVM 的图示,区别
    Webpack——解决疑惑,让你明白
    如何在修改bug时切换分支保留修改又不提交
    JavaScript中的两个“0” -0和+0
    node-wechat 微信推送消息
    git 删除本地分支和远程分支、本地代码回滚和远程代码库回滚
    git如何回滚远程仓库
  • 原文地址:https://www.cnblogs.com/aaronthon/p/9211196.html
Copyright © 2020-2023  润新知