在Sanic框架上,除了用JWT实现token认证外,同时想实现另外一种通过HMAC-SHA256进行签名认证的方式。但是在Sanic官方文档中只有JWT的实现,下面是我自己动手实现HMAC签名认证的方法。
1. 需要先编写一个装饰器,代码如下:
def Signatured(wrapped):
def decorator(f):
@wraps(f)
async def decorated_function(request:Request, *args, **kwargs):
headers=request.headers
auth_string=__getValuebyKey('authentication',headers)
if not auth_string:
#didn't retreive the authentication
return res_json({"error":501,
"message":"Authentication failure:no authentication is specified in header"
})
auth=auth_string.split(':')
sk=appSecretes[auth[0]]
if not sk:
#appsecret is none
return res_json({
"error":502,