2017-07-19 118 views
0

我已經使用Swagger UI部署和訪問了整個API。它使用基於HTTPS的基本身份驗證,並且可以輕鬆地點擊授權按鈕並輸入憑證,並且可以很好地工作。試用一下!特徵。如何使用Swagger UI自動授權所有端點?

但是,我想用共享的用戶名和密碼製作一個公共沙盒版本的API,它總是通過驗證;也就是說,沒有人應該提出授權對話框來輸入憑證。

我試圖把下面的代碼script元素內的HTML網頁上輸入基於從另一個StackOverflow的問題的答案授權:

window.swaggerUi.load(); 
    swaggerUi.api.clientAuthorizations.add("key", new SwaggerClient.ApiKeyAuthorization("Authorization", "Basic dXNlcm5hbWU6cGFzc3dvcmQ=", "header")); 

然而,當我打Try it out!按鈕授權不曾用過。

在全局設置所有端點上的auth頭文件方面,正確的方法是什麼,以便用戶不必手動輸入憑據?

(我知道這聽起來像一個奇怪的問題,但像我提到,它是一個公共的用戶名/密碼)。

+1

哪個版本的Swagger UI?我認爲代碼是2.x,並且在3.x中不起作用。 – Helen

+0

它確實是2.0,但不幸的是不起作用......或許與YAML規範中的現有字段有衝突,比如'securityDefinitions'? –

回答

1

我找到了一個解決方案,使用PasswordAuthorization代替ApiKeyAuthorization

做正確的事情是以下行添加到onComplete處理程序:

 swaggerUi.api.clientAuthorizations.add("basicAuth", 
     new SwaggerClient.PasswordAuthorization(
      "8939927d-4b8a-4a69-81e4-8290a83fd2e7", 
      "fbb7a689-2bb7-4f26-8697-d15c27ec9d86")); 

swaggerUi被傳遞給回調,所以這是要使用的值。另外,確保auth對象的名稱與YAML文件中的名稱匹配。

相關問題