zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    金融培训心得:银行客户经理10大不专业表现
    团队中的八类乞丐:你不改变,谁也救不了你!
    笔记本分类大全
    拆轮子 笔记
    spacemacs 自定义配置 笔记
    Fedora 25 安装搜狗输入法
    spark 配置使用
    Anaconda 仓库的镜像
    vscode vim配置
    使用Vim normal 命令 修改可视块区域
  • 原文地址:https://www.cnblogs.com/tashanzhishi/p/9600301.html
Copyright © 2011-2022 走看看