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)
  • 相关阅读:
    python
    在liunx环境下安装python
    解决用navicate远程连接数据库出现1045
    mysql的监控及优化
    mysql基础
    linux基础学习
    Effective c++ 第一章 让自己习惯C++
    读前感
    socket编程:客户端与服务器间的连接以及各函数的用法
    生成任意区间的随机数
  • 原文地址:https://www.cnblogs.com/tashanzhishi/p/9600301.html
Copyright © 2011-2022 走看看