跳至內容

OAuth 2.0 設定

您可以呼叫 initOAuth 方法來設定 OAuth 2.0 授權。

屬性名稱Docker 變數描述
clientIdOAUTH_CLIENT_ID預設 clientId。必須是字串
clientSecretOAUTH_CLIENT_SECRET🚨 請勿在您的生產環境中使用此參數。它會暴露重要的安全性資訊。此功能僅適用於開發/測試環境。🚨
預設 clientSecret。必須是字串
realmOAUTH_REALMrealm 查詢參數 (適用於 oauth1) 已新增至 authorizationUrltokenUrl。必須是字串
appNameOAUTH_APP_NAME應用程式名稱,顯示在授權快顯視窗中。必須是字串
scopeSeparatorOAUTH_SCOPE_SEPARATOR傳遞範圍的範圍分隔符號,在呼叫之前進行編碼,預設值為空格 (編碼值 %20)。必須是字串
scopesOAUTH_SCOPES字串陣列或以範圍分隔符號 (即空格) 分隔的字串,表示最初選取的 oauth 範圍,預設值為空陣列
additionalQueryStringParamsOAUTH_ADDITIONAL_PARAMS新增至 authorizationUrltokenUrl 的其他查詢參數。必須是物件
useBasicAuthenticationWithAccessCodeGrantOAUTH_USE_BASIC_AUTH僅針對 accessCode 流程啟用。在對 tokenUrlauthorization_code 請求期間,使用 HTTP 基本驗證配置 (Authorization 標頭,其值為 Basic base64encode(client_id + client_secret)) 傳遞用戶端密碼。預設值為 false
usePkceWithAuthorizationCodeGrantOAUTH_USE_PKCE僅適用於 授權碼 流程。程式碼交換證明金鑰 為 OAuth 公開用戶端帶來更高的安全性。預設值為 false

注意:此選項不會隱藏用戶端密碼輸入,因為 PKCE 和用戶端密碼都不是彼此的替代方案
1
const ui = SwaggerUI({...})
2
3
// Method can be called in any place after calling constructor SwaggerUIBundle
4
ui.initOAuth({
5
clientId: "your-client-id",
6
clientSecret: "your-client-secret-if-required",
7
realm: "your-realms",
8
appName: "your-app-name",
9
scopeSeparator: " ",
10
scopes: "openid profile",
11
additionalQueryStringParams: {test: "hello"},
12
useBasicAuthenticationWithAccessCodeGrant: true,
13
usePkceWithAuthorizationCodeGrant: true
14
})