在我的一个Rest API调用中,我需要添加标题"授权:partner_id:timestamp signature"
其中公司名称是静态字符串,可以在其中进行硬编码 partner_id是查询参数用户输入它的一部分 签名计算为sha256(秘密,密码).digest.encode(' base64')
我现在如何以及在何处实施此授权,因为我看到只有api_key,并且swagger-ui允许基本授权。
答案 0 :(得分:2)
是的,您可以轻松创建自己的签名技巧。来自swagger-js自述文件:
var CustomRequestSigner = function(name) {
this.name = name;
};
CustomRequestSigner.prototype.apply = function(obj, authorizations) {
// do something real instead of this...
var hashFunction = this._btoa;
var hash = hashFunction(obj.url);
obj.headers["signature"] = hash;
return true;
};
并将其添加到swagger中,如下所示:
client.clientAuthorizations
.add("custom", new CustomRequestSigner("custom","special-key","query"));
然后,任何标有安全要求custom
的操作都会应用此操作。