代码如下
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)