PublicClientApplication class
PublicClientApplication 类是库公开的对象,用于在单页应用程序中执行身份验证和授权函数,以便获取 JWT 令牌,如 OAuth 2.0 授权代码流和 PKCE 规范中所述。
方法
| acquire |
此函数从 eSTS 令牌终结点兑换授权代码(作为代码传递)。 应使用机密客户端获取此授权代码来获取spa_code。 对于正常授权代码获取和兑换,此 API 并未进行缩进。 兑换此授权代码不需要 PKCE,因为它是由机密客户端获取的。 |
| acquire |
当想要通过打开用户的浏览器中的弹出窗口获取 API 的access_token时使用 |
| acquire |
当希望通过将用户的浏览器窗口重定向到授权终结点来获取 API 的access_token时使用。 此函数将重定向页面,因此此函数后面的任何代码都不会执行。 重要提示:不建议使用依赖于 Promise 解析的代码。 此函数将从当前浏览器窗口导航。 它当前返回 Promise,以反映此函数中运行的代码的异步性质。 |
| acquire |
以无提示方式获取给定范围集的访问令牌。 如果发出并行请求,则返回当前处理承诺。 |
| add |
将事件回调添加到数组 |
| add |
注册回调以接收性能事件。 |
| clear |
从浏览器缓存中清除令牌和帐户。 |
| create |
创建 StandardController 并将其传递给 PublicClientApplication |
| disable |
删除在不同浏览器选项卡或窗口中从 localstorage 添加或删除用户帐户时发出事件的事件侦听器 |
| enable |
添加在不同浏览器选项卡或窗口中从 localstorage 添加或删除用户帐户时发出事件的事件侦听器 |
| get |
返回缓存中找到的第一个与传入的帐户筛选器匹配的帐户。 |
| get |
返回与 homeAccountId 匹配的已登录帐户。 (在成功登录时创建帐户对象),如果未找到匹配的帐户,则为 null |
| get |
返回与 localAccountId 匹配的已登录帐户。 (在成功登录时创建帐户对象),如果未找到匹配的帐户,则为 null |
| get |
返回与用户名匹配的已登录帐户。 (在成功登录时创建帐户对象),如果未找到匹配的帐户,则为 null。 此 API 为方便起见提供,但 getAccountById 应用于最佳可靠性 |
| get |
获取当前活动帐户 |
| get |
返回缓存中与可选筛选器匹配的所有帐户。 如果未提供筛选器,则返回所有帐户。 |
| get |
返回记录器实例 |
| get |
获取应用程序的令牌缓存。 |
| handle |
事件处理程序函数,允许用户在重定向流期间加载 PublicClientApplication 对象后触发事件。 应在重定向身份验证流所涉及的所有页面加载上调用此项。 |
| hydrate |
使用 AuthenticationResult 对象中的令牌和帐户冻结缓存 |
| initialize(Initialize |
初始值设定项函数执行异步启动任务,例如连接到 WAM 扩展 |
| initialize |
包装库 (Angular & React) 调用,以设置传递到遥测、记录器等的 SKU 和版本。 |
| login |
在用户浏览器中打开弹出窗口来启动登录过程时使用 |
| login |
通过将用户的浏览器重定向到授权终结点来启动登录过程时使用。 此函数将重定向页面,因此此函数后面的任何代码都不会执行。 重要提示:不建议使用依赖于 Promise 解析的代码。 此函数将从当前浏览器窗口导航。 它当前返回 Promise,以反映此函数中运行的代码的异步性质。 |
| logout(End |
弃用的注销函数。 请改用 logoutRedirect 或 logoutPopup |
| logout |
清除当前用户的本地缓存,然后打开一个弹出窗口,提示用户注销服务器 |
| logout |
用于注销当前用户,并将用户重定向到 postLogoutRedirectUri。
默认行为是将用户重定向到 |
| remove |
从回调数组中删除具有提供的 ID 的回调 |
| remove |
删除向 addPerformanceCallback 注册的回调。 |
| set |
设置要用作活动帐户的帐户。 如果未将帐户传递给 acquireToken API,则 MSAL 将使用此活动帐户。 |
| set |
将配置中的默认记录器集替换为新的记录器以及新配置 |
| set |
设置导航客户端 |
| sso |
此函数使用隐藏的 iframe 从 eSTS 提取授权代码。 在某些情况下,这可能不起作用:
在这些情况下,必须在弹出窗口或完整帧重定向内完成请求。 对于需要交互的情况,不能发送包含 prompt=none 的请求。 如果刷新令牌已过期,则可以使用此函数以无提示方式提取一组新的令牌,前提是服务器上的会话仍然存在。 |
构造函数详细信息
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>
参数
返回
Promise<AuthenticationResult>
如果引发错误,则此函数完成或拒绝的承诺。
acquireTokenPopup(PopupRequest)
当想要通过打开用户的浏览器中的弹出窗口获取 API 的access_token时使用
function acquireTokenPopup(request: PopupRequest): Promise<AuthenticationResult>
参数
- request
- PopupRequest
返回
Promise<AuthenticationResult>
如果引发错误,则此函数完成或拒绝的承诺。
acquireTokenRedirect(RedirectRequest)
当希望通过将用户的浏览器窗口重定向到授权终结点来获取 API 的access_token时使用。 此函数将重定向页面,因此此函数后面的任何代码都不会执行。
重要提示:不建议使用依赖于 Promise 解析的代码。 此函数将从当前浏览器窗口导航。 它当前返回 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[])
将事件回调添加到数组
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
{Configuration}
返回
Promise<IPublicClientApplication>
disableAccountStorageEvents()
删除在不同浏览器选项卡或窗口中从 localstorage 添加或删除用户帐户时发出事件的事件侦听器
function disableAccountStorageEvents()
enableAccountStorageEvents()
添加在不同浏览器选项卡或窗口中从 localstorage 添加或删除用户帐户时发出事件的事件侦听器
function enableAccountStorageEvents()
getAccount(AccountFilter)
返回缓存中找到的第一个与传入的帐户筛选器匹配的帐户。
function getAccount(accountFilter: AccountFilter): null | AccountInfo
参数
- accountFilter
- AccountFilter
返回
null | AccountInfo
如果找不到任何帐户,则缓存中找到的第一个帐户与提供的筛选器匹配,或为 null。
getAccountByHomeId(string)
警告
现已弃用此 API。
- Use getAccount instead
返回与 homeAccountId 匹配的已登录帐户。 (在成功登录时创建帐户对象),如果未找到匹配的帐户,则为 null
function getAccountByHomeId(homeAccountId: string): null | AccountInfo
参数
- homeAccountId
-
string
返回
null | AccountInfo
存储在 MSAL 中的帐户对象
getAccountByLocalId(string)
警告
现已弃用此 API。
- Use getAccount instead
返回与 localAccountId 匹配的已登录帐户。 (在成功登录时创建帐户对象),如果未找到匹配的帐户,则为 null
function getAccountByLocalId(localId: string): null | AccountInfo
参数
- localId
-
string
返回
null | AccountInfo
存储在 MSAL 中的帐户对象
getAccountByUsername(string)
警告
现已弃用此 API。
- Use getAccount instead
返回与用户名匹配的已登录帐户。 (在成功登录时创建帐户对象),如果未找到匹配的帐户,则为 null。 此 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>
令牌响应或 null。 如果返回值为 null,则未检测到身份验证重定向。
hydrateCache(AuthenticationResult, PopupRequest | RedirectRequest | SilentRequest | Partial<Omit<CommonAuthorizationUrlRequest, "responseMode" | "earJwk" | "codeChallenge" | "codeChallengeMethod" | "requestedClaimsHash" | "platformBroker">>)
使用 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 解析的代码。 此函数将从当前浏览器窗口导航。 它当前返回 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)
设置导航客户端
function setNavigationClient(navigationClient: INavigationClient)
参数
- navigationClient
- INavigationClient
ssoSilent(Partial<Omit<CommonAuthorizationUrlRequest, "responseMode" | "earJwk" | "codeChallenge" | "codeChallengeMethod" | "requestedClaimsHash" | "platformBroker">>)
此函数使用隐藏的 iframe 从 eSTS 提取授权代码。 在某些情况下,这可能不起作用:
- 使用智能跟踪防护形式的任何浏览器
- 如果没有与服务建立的会话
在这些情况下,必须在弹出窗口或完整帧重定向内完成请求。
对于需要交互的情况,不能发送包含 prompt=none 的请求。
如果刷新令牌已过期,则可以使用此函数以无提示方式提取一组新的令牌,前提是服务器上的会话仍然存在。
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>
如果引发错误,则此函数完成或拒绝的承诺。