话不多说,上代码
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)
如有不足,还请各位大佬多多指教
手机扫一扫
移动阅读更方便
你可能感兴趣的文章