2016-06-07 94 views
0

我正在爲我的項目構建一個OpenAPI支持,但我需要swagger.yaml文件僅對授權用戶可用。如何保護Swagger.yaml文件?

Swagger UI和Swagger Editor似乎都期望swagger.yaml文件可公開訪問。

我想過各種方法來解決它。人們可以使用「簽名」的URL,類似於S3的方式 - 這種方式只有擁有鏈接的人才能訪問它。

什麼是好習慣?

回答

0

我想通了。在Swagger-UI github page存在可以在index.html設置的authorizations參數的說明:

授權對象將被傳遞到招搖-JS。在這裏設置它將觸發包含任何授權或自定義簽名邏輯,當獲取swagger描述文件時。注意對象結構應該是{key:AuthorizationObject}

我所做的是設置了一個保護Swagger-UI的Node.js服務器。如果令牌未在Cookie中設置,它會指導用戶完成OAuth 2.0流程,設置Cookie,然後僅指向swagger-ui。

揚鞭-UI反過來又authorizations參數設置如下:在下載swagger.yaml文件時

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

頭部然後被傳遞到服務器。