Python+Flask接口实现简单的ToKen功能
阅读原文时间:2023年09月02日阅读:1

话不多说,上代码

from flask import request, jsonify
from functools import wraps

class TokenRequired:
@classmethod
def token_required(cls, f):
@wraps(f)
def decorated_function(*args, **kwargs):
# 获取请求头部中的key字段
# 也可以定义多个,这里仅定义了一个key
try :
key=request.headers.get('key')
if not key:
return jsonify({'message': 'Key缺失!'}), 401
hf=HFCryptogramLibrary()#自定义的加密方法
#解密Key
key=hf.Decode(key)
if not key.startswith("自定义的Key格式"):
return jsonify({'message': 'Key格式有误!'}), 401
# 这里可以实现你自己的key格式转换,这里模拟转换日期
date_object = datetime.strptime(key, "%Y%m%d").date()

            current\_date = date.today()

            if current\_date > date\_object:  
                return jsonify({'message': 'Key已过期'}), 401

            # 验证通过,执行被装饰函数  
            return f(\*args, \*\*kwargs)  
        except Exception as err:  
            return jsonify({'success':False,'message': f'{err}'}),200  
    return decorated\_function

  接口的验证使用

from flask import Flask, request, jsonify
from ToKenRequired import TokenRequired
#ToKenRequired可以自定义类名

@app.route('/api/data, methods=['POST'])
@TokenRequired.token_required#这里调用token
def Data():
text=''
response = returnTrue(text)
return jsonify(response)

  如有不足,还请各位大佬多多指教