PublicClientApplication class
PublicClientApplication 類別是函式庫所揭露的物件,用於在單頁應用程式中執行認證與授權功能,以取得 JWT 令牌,這些功能依據 OAuth 2.0 授權碼流程與 PKCE 規範所描述。
方法
| acquire |
此函式會從 eSTS 代幣端點兌換授權碼(以代碼形式傳遞)。 此授權碼應透過伺服器端的機密用戶端取得,以取得spa_code。 此 API 不適用於一般授權碼的取得與兌換。 兌換此授權碼不需 PKCE,因為該授權碼是由機密客戶取得的。 |
| acquire |
當你想透過使用者瀏覽器中的彈出視窗取得 API 的 access_token 時使用。 |
| acquire |
當你想透過將使用者的瀏覽器視窗導向到授權端點來取得 API 的access_token時,可以使用這個工具。 這個函式會重新導向頁面,因此跟隨這個函式的程式碼將無法執行。 重要提示:不建議使用依賴於承諾解析的程式碼。 這個功能會從目前的瀏覽器視窗中自動移動。 目前它會回傳一個 Promise,以反映此函式中執行的程式碼非同步特性。 |
| acquire |
靜默取得給定範圍的存取權杖。 如果有平行請求,則會回傳目前正在處理承諾。 |
| add |
新增事件回調到 array |
| add |
註冊回撥以接收效能事件。 |
| clear |
清除瀏覽器快取中的代幣和帳號。 |
| create |
建立 StandardController 並將其傳達給 PublicClientApplication |
| disable |
移除當使用者帳號在不同瀏覽器分頁或視窗中從 localstorage 新增或移除時會發出事件的事件監聽器 |
| enable |
新增事件監聽器,當使用者帳號在不同瀏覽器分頁或視窗中新增或移除 localstorage 時,會發出事件 |
| get |
回傳快取中第一個符合已輸入帳戶過濾器的帳號。 |
| get |
回傳已登入的帳號,與 homeAccountId 相符。 (帳號物件在成功登入時建立)或當找不到匹配帳號時為空 |
| get |
會回傳與 localAccountID 相符的登入帳號。 (帳號物件在成功登入時建立)或當找不到匹配帳號時為空 |
| get |
會回傳已登入帳號的對應使用者名稱。 (帳號物件會在成功登入時建立)或在找不到匹配帳號時為空。 此 API 是為了方便而提供,但為了最佳可靠性,應使用 getAccountById |
| get |
取得目前活躍的帳號 |
| get |
回傳快取中所有符合可選篩選器的帳號。 若未提供過濾器,所有帳號都會被歸還。 |
| get |
回傳記錄器實例 |
| get |
取得應用程式的標記快取。 |
| handle |
事件處理程式功能,允許使用者在 PublicClientApplication 物件載入後,於重定向流程中觸發事件。 所有涉及重定向認證流程的頁面載入時,都應啟動此功能。 |
| hydrate |
Hydrates 將憑證和帳號存放在 AuthenticationResult 物件中 |
| initialize(Initialize |
初始化器函式用於執行非同步啟動任務,例如連接 WAM 擴充功能 |
| initialize |
由包裝函式庫(Angular 和 React)呼叫,設定 SKU 和版本,並傳給遙測、記錄器等。 |
| login |
在啟動登入流程時,透過在使用者瀏覽器中開啟彈出視窗 |
| login |
在啟動登入流程時,透過將使用者的瀏覽器導向到授權端點來使用。 這個函式會重新導向頁面,因此跟隨這個函式的程式碼將無法執行。 重要提示:不建議使用依賴於承諾解析的程式碼。 這個功能會從目前的瀏覽器視窗中自動移動。 目前它會回傳一個 Promise,以反映此函式中執行的程式碼非同步特性。 |
| logout(End |
已棄用登出功能。 改用 logoutRedirect 或 logoutPopup |
| logout |
清除目前使用者的本地快取,然後打開彈出視窗,提示使用者登出伺服器 |
| logout |
用來登出目前使用者,並將使用者重新導向到 postLogoutRedirectUri。
預設行為是將使用者重新導向至 |
| remove |
從回調陣列中移除帶有 id 的回撥 |
| remove |
移除以 addPerformanceCallback 註冊的回撥。 |
| set |
設定帳號作為有效帳號使用。 若未將帳號傳入 acquireToken API,MSAL 將使用該啟用帳號。 |
| set |
將設定中的預設記錄器替換為新的記錄器,並有新的設定 |
| set |
Sets 導航客戶端 |
| sso |
此功能利用隱藏的 iframe 從 eSTS 取得授權碼。 有些情況下,這方法可能無法奏效:
在這些情況下,請求必須透過彈出視窗或全畫面重定向來完成。 在需要互動的情況下,不能發送提示=無的請求。 如果你的刷新權杖已經過期,只要伺服器上的工作還存在,你可以用這個函式靜默地取得一組新的權杖。 |
建構函式詳細資料
PublicClientApplication(Configuration, IController)
new PublicClientApplication(configuration: Configuration, controller?: IController)
參數
- configuration
- Configuration
MSAL PublicClientApplication 實例物件
- controller
- IController
方法詳細資料
acquireTokenByCode(AuthorizationCodeRequest)
此函式會從 eSTS 代幣端點兌換授權碼(以代碼形式傳遞)。 此授權碼應透過伺服器端的機密用戶端取得,以取得spa_code。 此 API 不適用於一般授權碼的取得與兌換。
兌換此授權碼不需 PKCE,因為該授權碼是由機密客戶取得的。
function acquireTokenByCode(request: AuthorizationCodeRequest): Promise<AuthenticationResult>
參數
- request
- AuthorizationCodeRequest
傳回
Promise<AuthenticationResult>
當此功能完成時承諾會被履行;若提出錯誤則被拒絕。
acquireTokenPopup(PopupRequest)
當你想透過使用者瀏覽器中的彈出視窗取得 API 的 access_token 時使用。
function acquireTokenPopup(request: PopupRequest): Promise<AuthenticationResult>
參數
- request
- PopupRequest
傳回
Promise<AuthenticationResult>
當此功能完成時承諾會被履行;若提出錯誤則被拒絕。
acquireTokenRedirect(RedirectRequest)
當你想透過將使用者的瀏覽器視窗導向到授權端點來取得 API 的access_token時,可以使用這個工具。 這個函式會重新導向頁面,因此跟隨這個函式的程式碼將無法執行。
重要提示:不建議使用依賴於承諾解析的程式碼。 這個功能會從目前的瀏覽器視窗中自動移動。 目前它會回傳一個 Promise,以反映此函式中執行的程式碼非同步特性。
function acquireTokenRedirect(request: RedirectRequest): Promise<void>
參數
- request
- RedirectRequest
傳回
Promise<void>
acquireTokenSilent(SilentRequest)
靜默取得給定範圍的存取權杖。 如果有平行請求,則會回傳目前正在處理承諾。
function acquireTokenSilent(silentRequest: SilentRequest): Promise<AuthenticationResult>
參數
- silentRequest
- SilentRequest
傳回
Promise<AuthenticationResult>
- 當此功能完成時承諾會被履行,若產生錯誤則被拒絕。 回傳 AuthenticationResult 物件
addEventCallback(EventCallbackFunction, EventType[])
新增事件回調到 array
function addEventCallback(callback: EventCallbackFunction, eventTypes?: EventType[]): null | string
參數
- callback
- EventCallbackFunction
- eventTypes
傳回
null | string
addPerformanceCallback(PerformanceCallbackFunction)
註冊回撥以接收效能事件。
function addPerformanceCallback(callback: PerformanceCallbackFunction): string
參數
- callback
- PerformanceCallbackFunction
傳回
string
clearCache(ClearCacheRequest)
清除瀏覽器快取中的代幣和帳號。
function clearCache(logoutRequest?: ClearCacheRequest): Promise<void>
參數
- logoutRequest
- ClearCacheRequest
傳回
Promise<void>
createPublicClientApplication(Configuration)
建立 StandardController 並將其傳達給 PublicClientApplication
static function createPublicClientApplication(configuration: Configuration): Promise<IPublicClientApplication>
參數
- configuration
- Configuration
{配置}
傳回
Promise<IPublicClientApplication>
disableAccountStorageEvents()
移除當使用者帳號在不同瀏覽器分頁或視窗中從 localstorage 新增或移除時會發出事件的事件監聽器
function disableAccountStorageEvents()
enableAccountStorageEvents()
新增事件監聽器,當使用者帳號在不同瀏覽器分頁或視窗中新增或移除 localstorage 時,會發出事件
function enableAccountStorageEvents()
getAccount(AccountFilter)
回傳快取中第一個符合已輸入帳戶過濾器的帳號。
function getAccount(accountFilter: AccountFilter): null | AccountInfo
參數
- accountFilter
- AccountFilter
傳回
null | AccountInfo
快取中第一個符合所提供過濾器的帳號,若找不到則為空。
getAccountByHomeId(string)
警告
此 API 現已淘汰。
- Use getAccount instead
回傳已登入的帳號,與 homeAccountId 相符。 (帳號物件在成功登入時建立)或當找不到匹配帳號時為空
function getAccountByHomeId(homeAccountId: string): null | AccountInfo
參數
- homeAccountId
-
string
傳回
null | AccountInfo
MSAL 中儲存的帳號物件
getAccountByLocalId(string)
警告
此 API 現已淘汰。
- Use getAccount instead
會回傳與 localAccountID 相符的登入帳號。 (帳號物件在成功登入時建立)或當找不到匹配帳號時為空
function getAccountByLocalId(localId: string): null | AccountInfo
參數
- localId
-
string
傳回
null | AccountInfo
MSAL 中儲存的帳號物件
getAccountByUsername(string)
警告
此 API 現已淘汰。
- Use getAccount instead
會回傳已登入帳號的對應使用者名稱。 (帳號物件會在成功登入時建立)或在找不到匹配帳號時為空。 此 API 是為了方便而提供,但為了最佳可靠性,應使用 getAccountById
function getAccountByUsername(userName: string): null | AccountInfo
參數
- userName
-
string
傳回
null | AccountInfo
MSAL 中儲存的帳號物件
getActiveAccount()
getAllAccounts(AccountFilter)
回傳快取中所有符合可選篩選器的帳號。 若未提供過濾器,所有帳號都會被歸還。
function getAllAccounts(accountFilter?: AccountFilter): AccountInfo[]
參數
- accountFilter
- AccountFilter
(可選)篩選器以縮小回傳帳戶範圍
傳回
快取中的 AccountInfo 物件陣列
getLogger()
getTokenCache()
handleRedirectPromise(string)
事件處理程式功能,允許使用者在 PublicClientApplication 物件載入後,於重定向流程中觸發事件。 所有涉及重定向認證流程的頁面載入時,都應啟動此功能。
function handleRedirectPromise(hash?: string): Promise<null | AuthenticationResult>
參數
- hash
-
string
用雜湊處理。 預設為目前的 window.location.hash 值。 只有當待處理的回應不包含在當前值時,才需要明確提供。
傳回
Promise<null | AuthenticationResult>
標記回應或空回應。 如果回傳值為空,表示未偵測到任何認證重定向。
hydrateCache(AuthenticationResult, PopupRequest | RedirectRequest | SilentRequest | Partial<Omit<CommonAuthorizationUrlRequest, "responseMode" | "earJwk" | "codeChallenge" | "codeChallengeMethod" | "requestedClaimsHash" | "platformBroker">>)
Hydrates 將憑證和帳號存放在 AuthenticationResult 物件中
function hydrateCache(result: AuthenticationResult, request: PopupRequest | RedirectRequest | SilentRequest | Partial<Omit<CommonAuthorizationUrlRequest, "responseMode" | "earJwk" | "codeChallenge" | "codeChallengeMethod" | "requestedClaimsHash" | "platformBroker">>): Promise<void>
參數
- result
- AuthenticationResult
- request
-
PopupRequest | RedirectRequest | SilentRequest | Partial<Omit<CommonAuthorizationUrlRequest, "responseMode" | "earJwk" | "codeChallenge" | "codeChallengeMethod" | "requestedClaimsHash" | "platformBroker">>
用於取得 AuthenticationResult 的請求物件
傳回
Promise<void>
initialize(InitializeApplicationRequest)
初始化器函式用於執行非同步啟動任務,例如連接 WAM 擴充功能
function initialize(request?: InitializeApplicationRequest): Promise<void>
參數
- request
- InitializeApplicationRequest
{?InitializeApplicationRequest}
傳回
Promise<void>
initializeWrapperLibrary(WrapperSKU, string)
由包裝函式庫(Angular 和 React)呼叫,設定 SKU 和版本,並傳給遙測、記錄器等。
function initializeWrapperLibrary(sku: WrapperSKU, version: string)
參數
- sku
- WrapperSKU
- version
-
string
loginPopup(PopupRequest)
在啟動登入流程時,透過在使用者瀏覽器中開啟彈出視窗
function loginPopup(request?: PopupRequest): Promise<AuthenticationResult>
參數
- request
- PopupRequest
傳回
Promise<AuthenticationResult>
當此功能完成時承諾會被履行;若提出錯誤則被拒絕。
loginRedirect(RedirectRequest)
在啟動登入流程時,透過將使用者的瀏覽器導向到授權端點來使用。 這個函式會重新導向頁面,因此跟隨這個函式的程式碼將無法執行。
重要提示:不建議使用依賴於承諾解析的程式碼。 這個功能會從目前的瀏覽器視窗中自動移動。 目前它會回傳一個 Promise,以反映此函式中執行的程式碼非同步特性。
function loginRedirect(request?: RedirectRequest): Promise<void>
參數
- request
- RedirectRequest
傳回
Promise<void>
logout(EndSessionRequest)
警告
此 API 現已淘汰。
已棄用登出功能。 改用 logoutRedirect 或 logoutPopup
function logout(logoutRequest?: EndSessionRequest): Promise<void>
參數
- logoutRequest
- EndSessionRequest
傳回
Promise<void>
logoutPopup(EndSessionPopupRequest)
清除目前使用者的本地快取,然後打開彈出視窗,提示使用者登出伺服器
function logoutPopup(logoutRequest?: EndSessionPopupRequest): Promise<void>
參數
- logoutRequest
- EndSessionPopupRequest
傳回
Promise<void>
logoutRedirect(EndSessionRequest)
用來登出目前使用者,並將使用者重新導向到 postLogoutRedirectUri。
預設行為是將使用者重新導向至 window.location.href。
function logoutRedirect(logoutRequest?: EndSessionRequest): Promise<void>
參數
- logoutRequest
- EndSessionRequest
傳回
Promise<void>
removeEventCallback(string)
從回調陣列中移除帶有 id 的回撥
function removeEventCallback(callbackId: string)
參數
- callbackId
-
string
removePerformanceCallback(string)
移除以 addPerformanceCallback 註冊的回撥。
function removePerformanceCallback(callbackId: string): boolean
參數
- callbackId
-
string
傳回
boolean
setActiveAccount(null | AccountInfo)
設定帳號作為有效帳號使用。 若未將帳號傳入 acquireToken API,MSAL 將使用該啟用帳號。
function setActiveAccount(account: null | AccountInfo)
參數
- account
-
null | AccountInfo
setLogger(Logger)
setNavigationClient(INavigationClient)
Sets 導航客戶端
function setNavigationClient(navigationClient: INavigationClient)
參數
- navigationClient
- INavigationClient
ssoSilent(Partial<Omit<CommonAuthorizationUrlRequest, "responseMode" | "earJwk" | "codeChallenge" | "codeChallengeMethod" | "requestedClaimsHash" | "platformBroker">>)
此功能利用隱藏的 iframe 從 eSTS 取得授權碼。 有些情況下,這方法可能無法奏效:
- 任何使用智慧追蹤預防的瀏覽器
- 如果服務沒有建立固定的會話
在這些情況下,請求必須透過彈出視窗或全畫面重定向來完成。
在需要互動的情況下,不能發送提示=無的請求。
如果你的刷新權杖已經過期,只要伺服器上的工作還存在,你可以用這個函式靜默地取得一組新的權杖。
function ssoSilent(request: Partial<Omit<CommonAuthorizationUrlRequest, "responseMode" | "earJwk" | "codeChallenge" | "codeChallengeMethod" | "requestedClaimsHash" | "platformBroker">>): Promise<AuthenticationResult>
參數
- request
-
Partial<Omit<CommonAuthorizationUrlRequest, "responseMode" | "earJwk" | "codeChallenge" | "codeChallengeMethod" | "requestedClaimsHash" | "platformBroker">>
傳回
Promise<AuthenticationResult>
當此功能完成時承諾會被履行;若提出錯誤則被拒絕。