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
    
  • 相关阅读:
    算法笔记--二分图判定
    算法笔记--最小表示法
    Codeforces 525A
    Codeforces 140D
    Codeforces C
    Codeforces 665C
    Codeforces 604B
    Codeforces 285C
    The Fewest Coins POJ
    Triangular Pastures POJ
  • 原文地址:https://www.cnblogs.com/SkyOceanchen/p/11922998.html
Copyright © 2011-2022 走看看