sanic框架下使用装饰器实现token验证
token验证装饰器定义
from itwalker.param_handle import rtnCode, Param
import functools
# 检查token和参数
def check_token(func):
@functools.wraps(func)
def wrapper(*args, **kw):
request = args[0]
param = Param(request) #请求参数梳理类
try:
res = getHeadParam(request, param) #授权头部信息获取
if not hasattr(res, "app_id"):
return res
app_id = param.app_id
app_token = param.app_token
auth = AuthHelper(app_id)
result = auth.check_token(request, param, app_id, app_token)#授权token检测
if result:
return result
else:
return func(*result)
except Exception as e:
print(str(e.args[:]))
return wrapper
使用示例
@app.route('/demo/action1', methods=['POST']) #定义接收请求
@request_handler.check_token #token验证
def action1(request): #验证后执行函数