Python itsdangerous 生成token和驗證token


代碼如下

class AuthToken(object):

    # 用於處理token信息流程:
    # 1、更加給定的用戶信息生成token
    # 2、保存生成的token,以便於后面驗證
    # 3、對用戶請求多來的token進行驗證:
    #   驗證成功--->繼續執行后面操作
    #   驗證失敗--->返回狀態碼通知client帶用戶信息來重新生成token

    def __init__(self, token_key):
        self.token_key = token_key

    def generate_token(self, expiration=3600):
        # 生成token需要信息:id,secret,empire/然后對這些信息進行算法加密
        token_obj = Serializer(SECRET_KEY, expires_in=expiration)  #SECRET_KEY為自定義的salt  例如:'asdfasdf'
        token = token_obj.dumps({'token_key': self.token_key})
        return token

    @staticmethod
    def verify_auth_token(token):
        # 驗證token
        token_obj = Serializer(SECRET_KEY)
        try:
            token_obj.loads(token)   #如果token驗證不成功,會報兩種錯誤
        except SignatureExpired:     #時間過期
            msg = 'valid token, but expired'
            return msg
        except BadSignature:         #token錯誤
            msg = 'Invalid token'
            return msg
        return True

    def save_token_key(self):
        # 僅需要保存self.token_key就可以,通過token_key進行實例化.將其保存在redis。這里進行redis連接和保存
        redis_obj = RedisConnect()
        redis_obj.client.hset('token', 'api_name', self.token_key)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM