CustomAuthPublicClientApplication class

Extends

PublicClientApplication

方法

create(CustomAuthConfiguration)

建立一個新的 PublicClientApplication 實例,使用指定設定與控制器啟動原生認證流程

getCurrentAccount(CustomAuthActionInputs)

從瀏覽器快取取得目前帳號。

resetPassword(ResetPasswordInputs)

啟動重設密碼流程。 此方法會觸發額外的動作(提交代碼)以完成重置密碼。 如果有任何例外拋出,請建立包含錯誤細節的結果。

signIn(SignInInputs)

啟動簽到流程。 此方法會導致登入完成,或是完成登入所需的額外動作(密碼、程式碼等)。 如果有任何例外拋出,請建立包含錯誤細節的結果。

signUp(SignUpInputs)

啟動報名流程。 此方法會導致註冊完成,或需額外操作(密碼、代碼等)才能完成註冊。 如果有任何例外拋出,請建立包含錯誤細節的結果。

繼承的方法

acquireTokenByCode(AuthorizationCodeRequest)

此函式會從 eSTS 代幣端點兌換授權碼(以代碼形式傳遞)。 此授權碼應透過伺服器端的機密用戶端取得,以取得spa_code。 此 API 不適用於一般授權碼的取得與兌換。

兌換此授權碼不需 PKCE,因為該授權碼是由機密客戶取得的。

acquireTokenPopup(PopupRequest)

當你想透過使用者瀏覽器中的彈出視窗取得 API 的 access_token 時使用。

acquireTokenRedirect(RedirectRequest)

當你想透過將使用者的瀏覽器視窗導向到授權端點來取得 API 的access_token時,可以使用這個工具。 這個函式會重新導向頁面,因此跟隨這個函式的程式碼將無法執行。

重要提示:不建議使用依賴於承諾解析的程式碼。 這個功能會從目前的瀏覽器視窗中自動移動。 目前它會回傳一個 Promise,以反映此函式中執行的程式碼非同步特性。

acquireTokenSilent(SilentRequest)

靜默取得給定範圍的存取權杖。 如果有平行請求,則會回傳目前正在處理承諾。

addEventCallback(EventCallbackFunction, EventType[])

新增事件回調到 array

addPerformanceCallback(PerformanceCallbackFunction)

註冊回撥以接收效能事件。

clearCache(ClearCacheRequest)

清除瀏覽器快取中的代幣和帳號。

createPublicClientApplication(Configuration)

建立 StandardController 並將其傳達給 PublicClientApplication

disableAccountStorageEvents()

移除當使用者帳號在不同瀏覽器分頁或視窗中從 localstorage 新增或移除時會發出事件的事件監聽器

enableAccountStorageEvents()

新增事件監聽器,當使用者帳號在不同瀏覽器分頁或視窗中新增或移除 localstorage 時,會發出事件

getAccount(AccountFilter)

回傳快取中第一個符合已輸入帳戶過濾器的帳號。

getAccountByHomeId(string)

回傳已登入的帳號,與 homeAccountId 相符。 (帳號物件在成功登入時建立)或當找不到匹配帳號時為空

getAccountByLocalId(string)

會回傳與 localAccountID 相符的登入帳號。 (帳號物件在成功登入時建立)或當找不到匹配帳號時為空

getAccountByUsername(string)

會回傳已登入帳號的對應使用者名稱。 (帳號物件會在成功登入時建立)或在找不到匹配帳號時為空。 此 API 是為了方便而提供,但為了最佳可靠性,應使用 getAccountById

getActiveAccount()

取得目前活躍的帳號

getAllAccounts(AccountFilter)

回傳快取中所有符合可選篩選器的帳號。 若未提供過濾器,所有帳號都會被歸還。

getLogger()

回傳記錄器實例

getTokenCache()

取得應用程式的標記快取。

handleRedirectPromise(string)

事件處理程式功能,允許使用者在 PublicClientApplication 物件載入後,於重定向流程中觸發事件。 所有涉及重定向認證流程的頁面載入時,都應啟動此功能。

hydrateCache(AuthenticationResult, PopupRequest | RedirectRequest | SilentRequest | Partial<Omit<CommonAuthorizationUrlRequest, "responseMode" | "earJwk" | "codeChallenge" | "codeChallengeMethod" | "requestedClaimsHash" | "platformBroker">>)

Hydrates 將憑證和帳號存放在 AuthenticationResult 物件中

initialize(InitializeApplicationRequest)

初始化器函式用於執行非同步啟動任務,例如連接 WAM 擴充功能

initializeWrapperLibrary(WrapperSKU, string)

由包裝函式庫(Angular 和 React)呼叫,設定 SKU 和版本,並傳給遙測、記錄器等。

loginPopup(PopupRequest)

在啟動登入流程時,透過在使用者瀏覽器中開啟彈出視窗

loginRedirect(RedirectRequest)

在啟動登入流程時,透過將使用者的瀏覽器導向到授權端點來使用。 這個函式會重新導向頁面,因此跟隨這個函式的程式碼將無法執行。

重要提示:不建議使用依賴於承諾解析的程式碼。 這個功能會從目前的瀏覽器視窗中自動移動。 目前它會回傳一個 Promise,以反映此函式中執行的程式碼非同步特性。

logout(EndSessionRequest)

已棄用登出功能。 改用 logoutRedirect 或 logoutPopup

logoutPopup(EndSessionPopupRequest)

清除目前使用者的本地快取,然後打開彈出視窗,提示使用者登出伺服器

logoutRedirect(EndSessionRequest)

用來登出目前使用者,並將使用者重新導向到 postLogoutRedirectUri。 預設行為是將使用者重新導向至 window.location.href

removeEventCallback(string)

從回調陣列中移除帶有 id 的回撥

removePerformanceCallback(string)

移除以 addPerformanceCallback 註冊的回撥。

setActiveAccount(null | AccountInfo)

設定帳號作為有效帳號使用。 若未將帳號傳入 acquireToken API,MSAL 將使用該啟用帳號。

setLogger(Logger)

將設定中的預設記錄器替換為新的記錄器,並有新的設定

setNavigationClient(INavigationClient)

Sets 導航客戶端

ssoSilent(Partial<Omit<CommonAuthorizationUrlRequest, "responseMode" | "earJwk" | "codeChallenge" | "codeChallengeMethod" | "requestedClaimsHash" | "platformBroker">>)

此功能利用隱藏的 iframe 從 eSTS 取得授權碼。 有些情況下,這方法可能無法奏效:

  • 任何使用智慧追蹤預防的瀏覽器
  • 如果服務沒有建立固定的會話

在這些情況下,請求必須透過彈出視窗或全畫面重定向來完成。

在需要互動的情況下,不能發送提示=無的請求。

如果你的刷新權杖已經過期,只要伺服器上的工作還存在,你可以用這個函式靜默地取得一組新的權杖。

方法詳細資料

create(CustomAuthConfiguration)

建立一個新的 PublicClientApplication 實例,使用指定設定與控制器啟動原生認證流程

static function create(config: CustomAuthConfiguration): Promise<ICustomAuthPublicClientApplication>

參數

config
CustomAuthConfiguration

PublicClientApplication 實例的設定物件

傳回

  • 一個承諾解析為 CustomAuthPublicClientApplication 實例

getCurrentAccount(CustomAuthActionInputs)

從瀏覽器快取取得目前帳號。

function getCurrentAccount(accountRetrievalInputs?: CustomAuthActionInputs): GetAccountResult

參數

accountRetrievalInputs

CustomAuthActionInputs

傳回

  • 取得帳戶操作的結果

resetPassword(ResetPasswordInputs)

啟動重設密碼流程。 此方法會觸發額外的動作(提交代碼)以完成重置密碼。 如果有任何例外拋出,請建立包含錯誤細節的結果。

function resetPassword(resetPasswordInputs: ResetPasswordInputs): Promise<ResetPasswordStartResult>

參數

resetPasswordInputs
ResetPasswordInputs

重設密碼流程的輸入

傳回

  • 一個承諾,解析為 ResetPasswordStartResult

signIn(SignInInputs)

啟動簽到流程。 此方法會導致登入完成,或是完成登入所需的額外動作(密碼、程式碼等)。 如果有任何例外拋出,請建立包含錯誤細節的結果。

function signIn(signInInputs: SignInInputs): Promise<SignInResult>

參數

signInInputs
SignInInputs

登入流程的輸入

傳回

Promise<SignInResult>

  • 一個承諾,目標是 SignInResult

signUp(SignUpInputs)

啟動報名流程。 此方法會導致註冊完成,或需額外操作(密碼、代碼等)才能完成註冊。 如果有任何例外拋出,請建立包含錯誤細節的結果。

function signUp(signUpInputs: SignUpInputs): Promise<SignUpResult>

參數

signUpInputs
SignUpInputs

傳回

Promise<SignUpResult>

  • 一個承諾,承諾是 SignUpResult

繼承的方法的詳細資料

acquireTokenByCode(AuthorizationCodeRequest)

此函式會從 eSTS 代幣端點兌換授權碼(以代碼形式傳遞)。 此授權碼應透過伺服器端的機密用戶端取得,以取得spa_code。 此 API 不適用於一般授權碼的取得與兌換。

兌換此授權碼不需 PKCE,因為該授權碼是由機密客戶取得的。

function acquireTokenByCode(request: AuthorizationCodeRequest): Promise<AuthenticationResult>

參數

request

AuthorizationCodeRequest

AuthorizationCodeRequest

傳回

Promise<AuthenticationResult>

當此功能完成時承諾會被履行;若提出錯誤則被拒絕。

繼承自 PublicClientApplication.acquireTokenByCode

acquireTokenPopup(PopupRequest)

當你想透過使用者瀏覽器中的彈出視窗取得 API 的 access_token 時使用。

function acquireTokenPopup(request: PopupRequest): Promise<AuthenticationResult>

參數

request

PopupRequest

傳回

Promise<AuthenticationResult>

當此功能完成時承諾會被履行;若提出錯誤則被拒絕。

繼承自 PublicClientApplication.acquireTokenPopup

acquireTokenRedirect(RedirectRequest)

當你想透過將使用者的瀏覽器視窗導向到授權端點來取得 API 的access_token時,可以使用這個工具。 這個函式會重新導向頁面,因此跟隨這個函式的程式碼將無法執行。

重要提示:不建議使用依賴於承諾解析的程式碼。 這個功能會從目前的瀏覽器視窗中自動移動。 目前它會回傳一個 Promise,以反映此函式中執行的程式碼非同步特性。

function acquireTokenRedirect(request: RedirectRequest): Promise<void>

參數

request

RedirectRequest

傳回

Promise<void>

繼承自 PublicClientApplication.acquireTokenRedirect

acquireTokenSilent(SilentRequest)

靜默取得給定範圍的存取權杖。 如果有平行請求,則會回傳目前正在處理承諾。

function acquireTokenSilent(silentRequest: SilentRequest): Promise<AuthenticationResult>

參數

silentRequest

SilentRequest

傳回

Promise<AuthenticationResult>

  • 當此功能完成時承諾會被履行,若產生錯誤則被拒絕。 回傳物件AuthenticationResult

繼承自 PublicClientApplication.acquireTokenSilent

addEventCallback(EventCallbackFunction, EventType[])

新增事件回調到 array

function addEventCallback(callback: EventCallbackFunction, eventTypes?: EventType[]): null | string

參數

callback

EventCallbackFunction

eventTypes

EventType[]

傳回

null | string

繼承自 PublicClientApplication.addEventCallback

addPerformanceCallback(PerformanceCallbackFunction)

註冊回撥以接收效能事件。

function addPerformanceCallback(callback: PerformanceCallbackFunction): string

參數

傳回

string

繼承自 PublicClientApplication.addPerformanceCallback

clearCache(ClearCacheRequest)

清除瀏覽器快取中的代幣和帳號。

function clearCache(logoutRequest?: ClearCacheRequest): Promise<void>

參數

logoutRequest

ClearCacheRequest

傳回

Promise<void>

繼承自 PublicClientApplication.clearCache

createPublicClientApplication(Configuration)

建立 StandardController 並將其傳達給 PublicClientApplication

static function createPublicClientApplication(configuration: Configuration): Promise<IPublicClientApplication>

參數

configuration

Configuration

{配置}

傳回

Promise<IPublicClientApplication>

繼承自 PublicClientApplication.createPublicClientApplication

disableAccountStorageEvents()

移除當使用者帳號在不同瀏覽器分頁或視窗中從 localstorage 新增或移除時會發出事件的事件監聽器

function disableAccountStorageEvents()

繼承自 PublicClientApplication.disableAccountStorageEvents

enableAccountStorageEvents()

新增事件監聽器,當使用者帳號在不同瀏覽器分頁或視窗中新增或移除 localstorage 時,會發出事件

function enableAccountStorageEvents()

繼承自 PublicClientApplication.enableAccountStorageEvents

getAccount(AccountFilter)

回傳快取中第一個符合已輸入帳戶過濾器的帳號。

function getAccount(accountFilter: AccountFilter): null | AccountInfo

參數

accountFilter
AccountFilter

傳回

null | AccountInfo

快取中第一個符合所提供過濾器的帳號,若找不到則為空。

繼承自 PublicClientApplication.getAccount

getAccountByHomeId(string)

警告

此 API 現已淘汰。

  • Use getAccount instead

回傳已登入的帳號,與 homeAccountId 相符。 (帳號物件在成功登入時建立)或當找不到匹配帳號時為空

function getAccountByHomeId(homeAccountId: string): null | AccountInfo

參數

homeAccountId

string

傳回

null | AccountInfo

MSAL 中儲存的帳號物件

繼承自 PublicClientApplication.getAccountByHomeId

getAccountByLocalId(string)

警告

此 API 現已淘汰。

  • Use getAccount instead

會回傳與 localAccountID 相符的登入帳號。 (帳號物件在成功登入時建立)或當找不到匹配帳號時為空

function getAccountByLocalId(localId: string): null | AccountInfo

參數

localId

string

傳回

null | AccountInfo

MSAL 中儲存的帳號物件

繼承自 PublicClientApplication.getAccountByLocalId

getAccountByUsername(string)

警告

此 API 現已淘汰。

  • Use getAccount instead

會回傳已登入帳號的對應使用者名稱。 (帳號物件會在成功登入時建立)或在找不到匹配帳號時為空。 此 API 是為了方便而提供,但為了最佳可靠性,應使用 getAccountById

function getAccountByUsername(userName: string): null | AccountInfo

參數

userName

string

傳回

null | AccountInfo

MSAL 中儲存的帳號物件

繼承自 PublicClientApplication.getAccountByUsername

getActiveAccount()

取得目前活躍的帳號

function getActiveAccount(): null | AccountInfo

傳回

null | AccountInfo

繼承自 PublicClientApplication.getActiveAccount

getAllAccounts(AccountFilter)

回傳快取中所有符合可選篩選器的帳號。 若未提供過濾器,所有帳號都會被歸還。

function getAllAccounts(accountFilter?: AccountFilter): AccountInfo[]

參數

accountFilter
AccountFilter

(可選)篩選器以縮小回傳帳戶範圍

傳回

快取中的 AccountInfo 物件陣列

繼承自 PublicClientApplication.getAllAccounts

getLogger()

回傳記錄器實例

function getLogger(): Logger

傳回

繼承自 PublicClientApplication.getLogger

getTokenCache()

取得應用程式的標記快取。

function getTokenCache(): ITokenCache

傳回

ITokenCache

繼承自 PublicClientApplication.getTokenCache

handleRedirectPromise(string)

事件處理程式功能,允許使用者在 PublicClientApplication 物件載入後,於重定向流程中觸發事件。 所有涉及重定向認證流程的頁面載入時,都應啟動此功能。

function handleRedirectPromise(hash?: string): Promise<null | AuthenticationResult>

參數

hash

string

用雜湊處理。 預設為目前的 window.location.hash 值。 只有當待處理的回應不包含在當前值時,才需要明確提供。

傳回

Promise<null | AuthenticationResult>

標記回應或空回應。 如果回傳值為空,表示未偵測到任何認證重定向。

繼承自 PublicClientApplication.handleRedirectPromise

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>

繼承自 PublicClientApplication.hydrateCache

initialize(InitializeApplicationRequest)

初始化器函式用於執行非同步啟動任務,例如連接 WAM 擴充功能

function initialize(request?: InitializeApplicationRequest): Promise<void>

參數

request

InitializeApplicationRequest

{?InitializeApplicationRequest}

傳回

Promise<void>

繼承自 PublicClientApplication.initialize

initializeWrapperLibrary(WrapperSKU, string)

由包裝函式庫(Angular 和 React)呼叫,設定 SKU 和版本,並傳給遙測、記錄器等。

function initializeWrapperLibrary(sku: WrapperSKU, version: string)

參數

sku

WrapperSKU

version

string

繼承自 PublicClientApplication.initializeWrapperLibrary

loginPopup(PopupRequest)

在啟動登入流程時,透過在使用者瀏覽器中開啟彈出視窗

function loginPopup(request?: PopupRequest): Promise<AuthenticationResult>

參數

request

PopupRequest

傳回

Promise<AuthenticationResult>

當此功能完成時承諾會被履行;若提出錯誤則被拒絕。

繼承自 PublicClientApplication.loginPopup

loginRedirect(RedirectRequest)

在啟動登入流程時,透過將使用者的瀏覽器導向到授權端點來使用。 這個函式會重新導向頁面,因此跟隨這個函式的程式碼將無法執行。

重要提示:不建議使用依賴於承諾解析的程式碼。 這個功能會從目前的瀏覽器視窗中自動移動。 目前它會回傳一個 Promise,以反映此函式中執行的程式碼非同步特性。

function loginRedirect(request?: RedirectRequest): Promise<void>

參數

request

RedirectRequest

傳回

Promise<void>

繼承自 PublicClientApplication.loginRedirect

logout(EndSessionRequest)

警告

此 API 現已淘汰。

已棄用登出功能。 改用 logoutRedirect 或 logoutPopup

function logout(logoutRequest?: EndSessionRequest): Promise<void>

參數

logoutRequest

EndSessionRequest

傳回

Promise<void>

繼承自 PublicClientApplication.logout

logoutPopup(EndSessionPopupRequest)

清除目前使用者的本地快取,然後打開彈出視窗,提示使用者登出伺服器

function logoutPopup(logoutRequest?: EndSessionPopupRequest): Promise<void>

參數

logoutRequest

EndSessionPopupRequest

傳回

Promise<void>

繼承自 PublicClientApplication.logoutPopup

logoutRedirect(EndSessionRequest)

用來登出目前使用者,並將使用者重新導向到 postLogoutRedirectUri。 預設行為是將使用者重新導向至 window.location.href

function logoutRedirect(logoutRequest?: EndSessionRequest): Promise<void>

參數

logoutRequest

EndSessionRequest

傳回

Promise<void>

繼承自 PublicClientApplication.logoutRedirect

removeEventCallback(string)

從回調陣列中移除帶有 id 的回撥

function removeEventCallback(callbackId: string)

參數

callbackId

string

繼承自 PublicClientApplication.removeEventCallback

removePerformanceCallback(string)

移除以 addPerformanceCallback 註冊的回撥。

function removePerformanceCallback(callbackId: string): boolean

參數

callbackId

string

傳回

boolean

繼承自 PublicClientApplication.removePerformanceCallback

setActiveAccount(null | AccountInfo)

設定帳號作為有效帳號使用。 若未將帳號傳入 acquireToken API,MSAL 將使用該啟用帳號。

function setActiveAccount(account: null | AccountInfo)

參數

account

null | AccountInfo

繼承自 PublicClientApplication.setActiveAccount

setLogger(Logger)

將設定中的預設記錄器替換為新的記錄器,並有新的設定

function setLogger(logger: Logger)

參數

logger
Logger

記錄器實例

繼承自 PublicClientApplication.setLogger

setNavigationClient(INavigationClient)

Sets 導航客戶端

function setNavigationClient(navigationClient: INavigationClient)

參數

navigationClient

INavigationClient

繼承自 PublicClientApplication.setNavigationClient

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">>

SsoSilentRequest

傳回

Promise<AuthenticationResult>

當此功能完成時承諾會被履行;若提出錯誤則被拒絕。

繼承自 PublicClientApplication.ssoSilent