初始化JS Swagger客户端时传入认证凭证



在JS中,我们通常在创建凭据时传入凭据,但Swagger的文档只展示了如何在创建客户端对象后执行此操作。

是的,只需创建一个密钥名称与securityDefinitions中的名称对齐的授权对象,并将其传递给构造函数。假设安全定义为:

"securityDefinitions" : {
  "sec_def_entry" : {
    "type" : "apiKey",
    "name" : "entry_name",
    "in" : "header"
  }
}

代码看起来像下面这样:

SwaggerClient = require('swagger-client'); //node
SwaggerClient = window.SwaggerClient;  //browser
var auths = {
  sec_def_entry : new SwaggerClient.ApiKeyAuthorization("entry_name", "special-key","header")
};

var client = new SwaggerClient({
  "url": 'https://example.com/swagger.json',
  authorizations: auths
})
但是,请注意,这将导致Swagger在从服务器检索规范时传递凭据信息。这可能会导致问题,如果您打开了基本授权,因为基本授权触发一个选项预飞行(花费额外的往返时间,并且需要将服务器设置为对所有选项请求响应200个响应),并且在CORS中不允许通配符来源。

最新更新