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

标签 javascript authorization swagger swagger-ui swagger-2.0

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

其中公司名称是静态字符串,可以对其进行硬编码,如下所示 Partner_id 是用户输入的查询参数的一部分, 签名计算为 sha256(secret,password).digest.encode('base64')

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

最佳答案

是的,您可以轻松创建自己的签名技术。来自 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"));

然后,任何标记有安全要求自定义的操作都将应用此功能。

关于javascript - 如何在 swagger UI 中添加自定义授权?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33141367/

相关文章:

asp.net-mvc - ASP.NET MVC 表单例份验证 + 授权属性 + 简单角色

swagger - 如何在 OAuth API 中使用 swagger?

docker - 通过Docker提供本地文件到swagger ui

javascript - 创建带有显示/隐藏标题的 jQuery 幻灯片

javascript - meteor JS : Show/Hide leaving blank divs

javascript - nvd3 应用程序内存泄漏

angularjs - 刷新身份验证 token 时处理多个未经授权的请求

node.js - 如何在 Graphql 中删除内省(introspection)查询的身份验证

用于从 Swagger、RAML 或 API 蓝图生成 HTML 的 Java 或 JavaScript 库

javascript - jQuery : How to Select input fields which are displayed in tabs