2

在我的一个 Rest API 调用中,我需要添加标题“授权:partner_id:时间戳签名”

其中公司名称是静态字符串,它可以被硬编码,因为 partner_id 是查询参数的一部分,用户输入它并且签名计算为 sha256(secret,password).digest.encode('base64')

我现在如何以及在哪里可以实现此授权,因为我看到只有 api_key,并且在 swagger-ui 中允许基本授权。

4

1 回答 1

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;
};

并将其添加到这样的招摇中:

client.clientAuthorizations
    .add("custom", new CustomRequestSigner("custom","special-key","query"));

然后任何标记有安全要求的操作custom都会应用这个。

于 2015-10-16T11:29:57.787 回答