zoukankan      html  css  js  c++  java
  • 认证组件authentication

    认证组件

    authentication

    """
    系统:session认证
    rest_framework.authentication.SessionAuthentication
    ajax请求通过认证:
    cookie中要携带 sessionid、csrftoken,请求头中要携带 x-csrftoken
    
    第三方:jwt认证 
    rest_framework_jwt.authentication.JSONWebTokenAuthentication
    ajax请求通过认证:
    请求头中要携带 authorization,值为 jwt空格token
    
    自定义:基于jwt、其它
    1)自定义认证类,继承BaseAuthentication(或其子类),重写authenticate
    2)authenticate中完成
        拿到认证标识 auth
        反解析出用户 user
        前两步操作失败 返回None => 游客
        前两步操作成功 返回user,auth => 登录用户
        注:如果在某个分支抛出异常,直接定义失败 => 非法用户
    """
    

    自定义认证类:基于jwt

    from rest_framework.exceptions import AuthenticationFailed
    import jwt
    from rest_framework_jwt.authentication import BaseJSONWebTokenAuthentication
    from rest_framework_jwt.authentication import jwt_decode_handler
    
     
    

    普通自定义认证类

    from rest_framework.authentication import BaseAuthentication
    def authenticate(self, request):
        auth = 从request中得到
        user = 从auth中得到
        if not user:
            return None
        return user, auth
    
  • 相关阅读:
    STM32 时钟配置分析
    STM32 开发板资源梳理
    STM32 摄像头实验OV2640
    STM32 TFT液晶屏与FSMC
    STM32 开发板电源与供电方式
    视觉里程计07 Qt的一些bug修改记录
    解决wireshark检测不到网卡的问题
    gdb 脚本调试
    [转] GCC 中的编译器堆栈保护技术
    使用gdbserver远程调试
  • 原文地址:https://www.cnblogs.com/SkyOceanchen/p/11922998.html
Copyright © 2011-2022 走看看