如何在swagger UI中添加自定义授权?

时间:2015-10-15 06:27:40

标签: javascript authorization swagger swagger-ui swagger-2.0

在我的一个Rest API调用中,我需要添加标题"授权:partner_id:timestamp signature"

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

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

1 个答案:

答案 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的操作都会应用此操作。