我如何保护Swagger.yaml文件?

时间:2016-06-07 19:21:58

标签: swagger swagger-ui swagger-2.0

我正在为我的项目构建一个OpenAPI支持,但我需要swagger.yaml文件才能供授权用户使用。

Swagger UI和Swagger Editor似乎都希望swagger.yaml文件可以公开访问。

我想过各种各样的解决方法。可以使用“已签名”的URL,类似于S3的做法 - 这样只有拥有链接的人才能访问它。

什么是好习惯?

1 个答案:

答案 0 :(得分:0)

我明白了。在Swagger-UI github page上有一个authorizations参数的说明,可以在index.html中设置:

  

要传递给swagger-js的授权对象。在此处设置将在获取swagger描述文件时触发包含任何授权或自定义签名逻辑。请注意,对象结构应为{key:AuthorizationObject}

我所做的是设置一个保护Swagger-UI的Node.js服务器。如果未在Cookie中设置令牌,则会指示用户完成OAuth 2.0流程,设置Cookie,然后才会指向swagger-ui。

Swagger-ui反过来设置authorizations参数如下:

authorizations: {
      "_auth": new SwaggerClient.ApiKeyAuthorization(
          "Authorization", "Bearer "+ Cookies.get("MyAccessToken"),
           "header")
    }

下载swagger.yaml文件时,标题会传递给服务器。

相关问题