認證組件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
相關文章
相關標籤/搜索