0
我正在爲我的項目構建一個OpenAPI支持,但我需要swagger.yaml文件僅對授權用戶可用。如何保護Swagger.yaml文件?
Swagger UI和Swagger Editor似乎都期望swagger.yaml文件可公開訪問。
我想過各種方法來解決它。人們可以使用「簽名」的URL,類似於S3的方式 - 這種方式只有擁有鏈接的人才能訪問它。
什麼是好習慣?
我正在爲我的項目構建一個OpenAPI支持,但我需要swagger.yaml文件僅對授權用戶可用。如何保護Swagger.yaml文件?
Swagger UI和Swagger Editor似乎都期望swagger.yaml文件可公開訪問。
我想過各種方法來解決它。人們可以使用「簽名」的URL,類似於S3的方式 - 這種方式只有擁有鏈接的人才能訪問它。
什麼是好習慣?
我想通了。在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")
}
頭部然後被傳遞到服務器。