在用flask做后台时,需要用到token做身份验证,这里记录两种方法。

  • 带时间过期验证的
    from itsdangerous import TimedJSONWebSignatureSerializer as Serializer
    from itsdangerous import SignatureExpired, BadSignature
    ...
    #加密,第二个参数是过期时间
    s = Serializer(app.config['SECRET_KEY'], 6*60)
    json={}
    json['XXX'] = XXX
    json['XXXX']= XXX
    return s.dumps(json) #返回加密字符串
    ..
    #解密
    s = Serializer(app.config['SECRET_KEY'])
    try:
        data = s.loads(token)
    except SignatureExpired:#合法,但是过期了
        return False
    except BadSignature:#不合法
        return False
    
  • 不带时间验证
    from itsdangerous import URLSafeSerializer
    from itsdangerous import BadSignature, BadData
    ...
    #加密,返回加密的字符串
    s=URLSafeSerializer(app.config['SECRET_KEY'])
    json={}
    json['XXX'] = XXXX
    json['XXXX']= XXXX
    return s.dumps(json)
    ...
    #解密
    s=URLSafeSerializer(app.config['SECRET_KEY'])
    try:
        data1=s.loads(mytoken)
    except BadSignature:
        #不合法
        return False
app.config['SECRET_KEY'] 是Flask配置信息,详见另一篇文章