UNPKG

@azure/msal-browser

Version:
60 lines (57 loc) 3.02 kB
/*! @azure/msal-browser v5.6.3 2026-04-01 */ 'use strict'; import { StandardInteractionClient } from './StandardInteractionClient.mjs'; import { invokeAsync, SilentFlowClient } from '@azure/msal-common/browser'; import { StandardInteractionClientGetClientConfiguration, SilentFlowClientAcquireCachedToken } from '../telemetry/BrowserPerformanceEvents.mjs'; import { ApiId } from '../utils/BrowserConstants.mjs'; import { BrowserAuthError } from '../error/BrowserAuthError.mjs'; import { initializeServerTelemetryManager, clearCacheOnLogout } from './BaseInteractionClient.mjs'; import { cryptoKeyNotFound } from '../error/BrowserAuthErrorCodes.mjs'; /* * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. */ class SilentCacheClient extends StandardInteractionClient { /** * Returns unexpired tokens from the cache, if available * @param silentRequest */ async acquireToken(silentRequest) { // Telemetry manager only used to increment cacheHits here const serverTelemetryManager = initializeServerTelemetryManager(ApiId.acquireTokenSilent_silentFlow, this.config.auth.clientId, this.correlationId, this.browserStorage, this.logger); const clientConfig = await invokeAsync(this.getClientConfiguration.bind(this), StandardInteractionClientGetClientConfiguration, this.logger, this.performanceClient, this.correlationId)({ serverTelemetryManager, requestAuthority: silentRequest.authority, requestAzureCloudOptions: silentRequest.azureCloudOptions, account: silentRequest.account, }); const silentAuthClient = new SilentFlowClient(clientConfig, this.performanceClient); this.logger.verbose("0wa871", this.correlationId); try { const response = await invokeAsync(silentAuthClient.acquireCachedToken.bind(silentAuthClient), SilentFlowClientAcquireCachedToken, this.logger, this.performanceClient, silentRequest.correlationId)(silentRequest); const authResponse = response[0]; this.performanceClient.addFields({ fromCache: true, }, silentRequest.correlationId); return authResponse; } catch (error) { if (error instanceof BrowserAuthError && error.errorCode === cryptoKeyNotFound) { this.logger.verbose("06wena", this.correlationId); } throw error; } } /** * API to silenty clear the browser cache. * @param logoutRequest */ logout(logoutRequest) { this.logger.verbose("1rkurh", this.correlationId); const validLogoutRequest = this.initializeLogoutRequest(logoutRequest); return clearCacheOnLogout(this.browserStorage, this.browserCrypto, this.logger, this.correlationId, validLogoutRequest.account); } } export { SilentCacheClient }; //# sourceMappingURL=SilentCacheClient.mjs.map