@azure/msal-browser 3.0.0-alpha.1 → 3.0.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +213 -213
  3. package/dist/app/IPublicClientApplication.d.ts +45 -45
  4. package/dist/app/IPublicClientApplication.js +96 -96
  5. package/dist/app/PublicClientApplication.d.ts +244 -244
  6. package/dist/app/PublicClientApplication.js +307 -307
  7. package/dist/broker/nativeBroker/NativeMessageHandler.d.ts +63 -63
  8. package/dist/broker/nativeBroker/NativeMessageHandler.js +255 -255
  9. package/dist/broker/nativeBroker/NativeRequest.d.ts +43 -43
  10. package/dist/broker/nativeBroker/NativeResponse.d.ts +48 -48
  11. package/dist/cache/AsyncMemoryStorage.d.ts +51 -51
  12. package/dist/cache/AsyncMemoryStorage.js +132 -132
  13. package/dist/cache/BrowserCacheManager.d.ts +377 -377
  14. package/dist/cache/BrowserCacheManager.js +1276 -1276
  15. package/dist/cache/BrowserStorage.d.ts +11 -11
  16. package/dist/cache/BrowserStorage.js +35 -35
  17. package/dist/cache/CryptoKeyStore.d.ts +17 -17
  18. package/dist/cache/CryptoKeyStore.js +41 -41
  19. package/dist/cache/DatabaseStorage.d.ts +56 -56
  20. package/dist/cache/DatabaseStorage.js +190 -190
  21. package/dist/cache/IAsyncMemoryStorage.d.ts +27 -27
  22. package/dist/cache/ITokenCache.d.ts +10 -10
  23. package/dist/cache/IWindowStorage.d.ts +27 -27
  24. package/dist/cache/MemoryStorage.d.ts +11 -11
  25. package/dist/cache/MemoryStorage.js +31 -31
  26. package/dist/cache/TokenCache.d.ts +76 -76
  27. package/dist/cache/TokenCache.js +225 -225
  28. package/dist/config/Configuration.d.ts +203 -203
  29. package/dist/config/Configuration.js +101 -101
  30. package/dist/controllers/ControllerFactory.d.ts +9 -9
  31. package/dist/controllers/ControllerFactory.js +37 -37
  32. package/dist/controllers/IController.d.ts +66 -66
  33. package/dist/controllers/StandardController.d.ts +413 -413
  34. package/dist/controllers/StandardController.js +1272 -1272
  35. package/dist/crypto/BrowserCrypto.d.ts +61 -61
  36. package/dist/crypto/BrowserCrypto.js +131 -131
  37. package/dist/crypto/CryptoOps.d.ts +73 -73
  38. package/dist/crypto/CryptoOps.js +150 -150
  39. package/dist/crypto/GuidGenerator.d.ts +12 -12
  40. package/dist/crypto/GuidGenerator.js +96 -96
  41. package/dist/crypto/ISubtleCrypto.d.ts +9 -9
  42. package/dist/crypto/ModernBrowserCrypto.d.ts +9 -9
  43. package/dist/crypto/ModernBrowserCrypto.js +24 -24
  44. package/dist/crypto/MsBrowserCrypto.d.ts +9 -9
  45. package/dist/crypto/MsBrowserCrypto.js +79 -79
  46. package/dist/crypto/MsrBrowserCrypto.d.ts +17 -17
  47. package/dist/crypto/MsrBrowserCrypto.js +28 -28
  48. package/dist/crypto/PkceGenerator.d.ts +24 -24
  49. package/dist/crypto/PkceGenerator.js +58 -58
  50. package/dist/crypto/SignedHttpRequest.d.ts +30 -30
  51. package/dist/crypto/SignedHttpRequest.js +39 -39
  52. package/dist/encode/Base64Decode.d.ts +22 -22
  53. package/dist/encode/Base64Decode.js +73 -73
  54. package/dist/encode/Base64Encode.d.ts +31 -31
  55. package/dist/encode/Base64Encode.js +79 -79
  56. package/dist/error/BrowserAuthError.d.ts +382 -382
  57. package/dist/error/BrowserAuthError.js +483 -483
  58. package/dist/error/BrowserConfigurationAuthError.d.ts +70 -70
  59. package/dist/error/BrowserConfigurationAuthError.js +96 -96
  60. package/dist/error/NativeAuthError.d.ts +56 -56
  61. package/dist/error/NativeAuthError.js +88 -88
  62. package/dist/event/EventHandler.d.ts +41 -41
  63. package/dist/event/EventHandler.js +119 -119
  64. package/dist/event/EventMessage.d.ts +25 -25
  65. package/dist/event/EventMessage.js +67 -67
  66. package/dist/event/EventType.d.ts +26 -26
  67. package/dist/event/EventType.js +31 -31
  68. package/dist/index.d.ts +35 -35
  69. package/dist/index.js +1 -1
  70. package/dist/interaction_client/BaseInteractionClient.d.ts +52 -52
  71. package/dist/interaction_client/BaseInteractionClient.js +138 -138
  72. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.d.ts +4 -4
  73. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.js +10 -10
  74. package/dist/interaction_client/NativeInteractionClient.d.ts +148 -148
  75. package/dist/interaction_client/NativeInteractionClient.js +516 -516
  76. package/dist/interaction_client/PopupClient.d.ts +111 -111
  77. package/dist/interaction_client/PopupClient.js +476 -476
  78. package/dist/interaction_client/RedirectClient.d.ts +48 -48
  79. package/dist/interaction_client/RedirectClient.js +290 -290
  80. package/dist/interaction_client/SilentAuthCodeClient.d.ts +22 -22
  81. package/dist/interaction_client/SilentAuthCodeClient.js +62 -62
  82. package/dist/interaction_client/SilentCacheClient.d.ts +21 -21
  83. package/dist/interaction_client/SilentCacheClient.js +67 -67
  84. package/dist/interaction_client/SilentIframeClient.d.ts +31 -31
  85. package/dist/interaction_client/SilentIframeClient.js +127 -127
  86. package/dist/interaction_client/SilentRefreshClient.d.ts +19 -19
  87. package/dist/interaction_client/SilentRefreshClient.js +62 -62
  88. package/dist/interaction_client/StandardInteractionClient.d.ts +59 -59
  89. package/dist/interaction_client/StandardInteractionClient.js +259 -259
  90. package/dist/interaction_handler/InteractionHandler.d.ts +39 -39
  91. package/dist/interaction_handler/InteractionHandler.js +127 -127
  92. package/dist/interaction_handler/RedirectHandler.d.ts +24 -24
  93. package/dist/interaction_handler/RedirectHandler.js +118 -118
  94. package/dist/interaction_handler/SilentHandler.d.ts +47 -47
  95. package/dist/interaction_handler/SilentHandler.js +162 -162
  96. package/dist/internals.d.ts +23 -23
  97. package/dist/internals.js +4 -4
  98. package/dist/navigation/INavigationClient.d.ts +16 -16
  99. package/dist/navigation/NavigationClient.d.ts +22 -22
  100. package/dist/navigation/NavigationClient.js +40 -40
  101. package/dist/navigation/NavigationOptions.d.ts +12 -12
  102. package/dist/network/FetchClient.d.ts +26 -26
  103. package/dist/network/FetchClient.js +99 -99
  104. package/dist/network/XhrClient.d.ts +40 -40
  105. package/dist/network/XhrClient.js +117 -117
  106. package/dist/operatingcontext/BaseOperatingContext.d.ts +40 -40
  107. package/dist/operatingcontext/BaseOperatingContext.js +44 -44
  108. package/dist/operatingcontext/StandardOperatingContext.d.ts +25 -25
  109. package/dist/operatingcontext/StandardOperatingContext.js +43 -43
  110. package/dist/operatingcontext/TeamsAppOperatingContext.d.ts +25 -25
  111. package/dist/operatingcontext/TeamsAppOperatingContext.js +42 -42
  112. package/dist/packageMetadata.d.ts +2 -2
  113. package/dist/packageMetadata.js +4 -4
  114. package/dist/request/AuthorizationCodeRequest.d.ts +8 -8
  115. package/dist/request/AuthorizationUrlRequest.d.ts +8 -8
  116. package/dist/request/EndSessionPopupRequest.d.ts +18 -18
  117. package/dist/request/EndSessionRequest.d.ts +15 -15
  118. package/dist/request/PopupRequest.d.ts +32 -32
  119. package/dist/request/PopupWindowAttributes.d.ts +15 -15
  120. package/dist/request/RedirectRequest.d.ts +33 -33
  121. package/dist/request/SilentRequest.d.ts +30 -30
  122. package/dist/request/SsoSilentRequest.d.ts +26 -26
  123. package/dist/telemetry/BrowserPerformanceClient.d.ts +38 -38
  124. package/dist/telemetry/BrowserPerformanceClient.js +124 -124
  125. package/dist/telemetry/BrowserPerformanceMeasurement.d.ts +21 -21
  126. package/dist/telemetry/BrowserPerformanceMeasurement.js +92 -92
  127. package/dist/utils/BrowserConstants.d.ts +166 -166
  128. package/dist/utils/BrowserConstants.js +214 -214
  129. package/dist/utils/BrowserProtocolUtils.d.ts +18 -18
  130. package/dist/utils/BrowserProtocolUtils.js +34 -34
  131. package/dist/utils/BrowserStringUtils.d.ts +26 -26
  132. package/dist/utils/BrowserStringUtils.js +149 -149
  133. package/dist/utils/BrowserUtils.d.ts +65 -65
  134. package/dist/utils/BrowserUtils.js +138 -138
  135. package/dist/utils/MathUtils.d.ts +11 -11
  136. package/dist/utils/MathUtils.js +21 -21
  137. package/lib/msal-browser.cjs.js +18383 -0
  138. package/lib/msal-browser.cjs.js.map +1 -0
  139. package/lib/msal-browser.js +18389 -0
  140. package/lib/msal-browser.js.map +1 -0
  141. package/lib/msal-browser.min.js +74 -0
  142. package/package.json +97 -95
@@ -1,23 +1,23 @@
1
- import { AuthenticationResult, ICrypto, Logger, IPerformanceClient } from "@azure/msal-common";
2
- import { StandardInteractionClient } from "./StandardInteractionClient";
3
- import { BrowserConfiguration } from "../config/Configuration";
4
- import { BrowserCacheManager } from "../cache/BrowserCacheManager";
5
- import { EventHandler } from "../event/EventHandler";
6
- import { INavigationClient } from "../navigation/INavigationClient";
7
- import { ApiId } from "../utils/BrowserConstants";
8
- import { AuthorizationCodeRequest } from "../request/AuthorizationCodeRequest";
9
- import { NativeMessageHandler } from "../broker/nativeBroker/NativeMessageHandler";
10
- export declare class SilentAuthCodeClient extends StandardInteractionClient {
11
- private apiId;
12
- constructor(config: BrowserConfiguration, storageImpl: BrowserCacheManager, browserCrypto: ICrypto, logger: Logger, eventHandler: EventHandler, navigationClient: INavigationClient, apiId: ApiId, performanceClient: IPerformanceClient, nativeMessageHandler?: NativeMessageHandler, correlationId?: string);
13
- /**
14
- * Acquires a token silently by redeeming an authorization code against the /token endpoint
15
- * @param request
16
- */
17
- acquireToken(request: AuthorizationCodeRequest): Promise<AuthenticationResult>;
18
- /**
19
- * Currently Unsupported
20
- */
21
- logout(): Promise<void>;
22
- }
1
+ import { AuthenticationResult, ICrypto, Logger, IPerformanceClient } from "@azure/msal-common";
2
+ import { StandardInteractionClient } from "./StandardInteractionClient";
3
+ import { BrowserConfiguration } from "../config/Configuration";
4
+ import { BrowserCacheManager } from "../cache/BrowserCacheManager";
5
+ import { EventHandler } from "../event/EventHandler";
6
+ import { INavigationClient } from "../navigation/INavigationClient";
7
+ import { ApiId } from "../utils/BrowserConstants";
8
+ import { AuthorizationCodeRequest } from "../request/AuthorizationCodeRequest";
9
+ import { NativeMessageHandler } from "../broker/nativeBroker/NativeMessageHandler";
10
+ export declare class SilentAuthCodeClient extends StandardInteractionClient {
11
+ private apiId;
12
+ constructor(config: BrowserConfiguration, storageImpl: BrowserCacheManager, browserCrypto: ICrypto, logger: Logger, eventHandler: EventHandler, navigationClient: INavigationClient, apiId: ApiId, performanceClient: IPerformanceClient, nativeMessageHandler?: NativeMessageHandler, correlationId?: string);
13
+ /**
14
+ * Acquires a token silently by redeeming an authorization code against the /token endpoint
15
+ * @param request
16
+ */
17
+ acquireToken(request: AuthorizationCodeRequest): Promise<AuthenticationResult>;
18
+ /**
19
+ * Currently Unsupported
20
+ */
21
+ logout(): Promise<void>;
22
+ }
23
23
  //# sourceMappingURL=SilentAuthCodeClient.d.ts.map
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-browser v3.0.0-alpha.1 2023-05-08 */
1
+ /*! @azure/msal-browser v3.0.0-alpha.2 2023-05-17 */
2
2
  'use strict';
3
3
  import { PerformanceEvents, Constants, AuthError } from '@azure/msal-common';
4
4
  import { StandardInteractionClient } from './StandardInteractionClient.js';
@@ -7,67 +7,67 @@ import { InteractionType } from '../utils/BrowserConstants.js';
7
7
  import { SilentHandler } from '../interaction_handler/SilentHandler.js';
8
8
  import { HybridSpaAuthorizationCodeClient } from './HybridSpaAuthorizationCodeClient.js';
9
9
 
10
- /*
11
- * Copyright (c) Microsoft Corporation. All rights reserved.
12
- * Licensed under the MIT License.
13
- */
14
- class SilentAuthCodeClient extends StandardInteractionClient {
15
- constructor(config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, apiId, performanceClient, nativeMessageHandler, correlationId) {
16
- super(config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, performanceClient, nativeMessageHandler, correlationId);
17
- this.apiId = apiId;
18
- }
19
- /**
20
- * Acquires a token silently by redeeming an authorization code against the /token endpoint
21
- * @param request
22
- */
23
- async acquireToken(request) {
24
- this.logger.trace("SilentAuthCodeClient.acquireToken called");
25
- // Auth code payload is required
26
- if (!request.code) {
27
- throw BrowserAuthError.createAuthCodeRequiredError();
28
- }
29
- // Create silent request
30
- this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientInitializeAuthorizationRequest, request.correlationId);
31
- const silentRequest = await this.initializeAuthorizationRequest(request, InteractionType.Silent);
32
- this.browserStorage.updateCacheEntries(silentRequest.state, silentRequest.nonce, silentRequest.authority, silentRequest.loginHint || Constants.EMPTY_STRING, silentRequest.account || null);
33
- const serverTelemetryManager = this.initializeServerTelemetryManager(this.apiId);
34
- try {
35
- // Create auth code request (PKCE not needed)
36
- const authCodeRequest = {
37
- ...silentRequest,
38
- code: request.code,
39
- };
40
- // Initialize the client
41
- this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientGetClientConfiguration, request.correlationId);
42
- const clientConfig = await this.getClientConfiguration(serverTelemetryManager, silentRequest.authority);
43
- const authClient = new HybridSpaAuthorizationCodeClient(clientConfig);
44
- this.logger.verbose("Auth code client created");
45
- // Create silent handler
46
- const silentHandler = new SilentHandler(authClient, this.browserStorage, authCodeRequest, this.logger, this.config.system, this.performanceClient);
47
- // Handle auth code parameters from request
48
- return silentHandler.handleCodeResponseFromServer({
49
- code: request.code,
50
- msgraph_host: request.msGraphHost,
51
- cloud_graph_host_name: request.cloudGraphHostName,
52
- cloud_instance_host_name: request.cloudInstanceHostName,
53
- }, silentRequest.state, authClient.authority, this.networkClient, false);
54
- }
55
- catch (e) {
56
- if (e instanceof AuthError) {
57
- e.setCorrelationId(this.correlationId);
58
- serverTelemetryManager.cacheFailedRequest(e);
59
- }
60
- this.browserStorage.cleanRequestByState(silentRequest.state);
61
- throw e;
62
- }
63
- }
64
- /**
65
- * Currently Unsupported
66
- */
67
- logout() {
68
- // Synchronous so we must reject
69
- return Promise.reject(BrowserAuthError.createSilentLogoutUnsupportedError());
70
- }
10
+ /*
11
+ * Copyright (c) Microsoft Corporation. All rights reserved.
12
+ * Licensed under the MIT License.
13
+ */
14
+ class SilentAuthCodeClient extends StandardInteractionClient {
15
+ constructor(config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, apiId, performanceClient, nativeMessageHandler, correlationId) {
16
+ super(config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, performanceClient, nativeMessageHandler, correlationId);
17
+ this.apiId = apiId;
18
+ }
19
+ /**
20
+ * Acquires a token silently by redeeming an authorization code against the /token endpoint
21
+ * @param request
22
+ */
23
+ async acquireToken(request) {
24
+ this.logger.trace("SilentAuthCodeClient.acquireToken called");
25
+ // Auth code payload is required
26
+ if (!request.code) {
27
+ throw BrowserAuthError.createAuthCodeRequiredError();
28
+ }
29
+ // Create silent request
30
+ this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientInitializeAuthorizationRequest, request.correlationId);
31
+ const silentRequest = await this.initializeAuthorizationRequest(request, InteractionType.Silent);
32
+ this.browserStorage.updateCacheEntries(silentRequest.state, silentRequest.nonce, silentRequest.authority, silentRequest.loginHint || Constants.EMPTY_STRING, silentRequest.account || null);
33
+ const serverTelemetryManager = this.initializeServerTelemetryManager(this.apiId);
34
+ try {
35
+ // Create auth code request (PKCE not needed)
36
+ const authCodeRequest = {
37
+ ...silentRequest,
38
+ code: request.code,
39
+ };
40
+ // Initialize the client
41
+ this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientGetClientConfiguration, request.correlationId);
42
+ const clientConfig = await this.getClientConfiguration(serverTelemetryManager, silentRequest.authority);
43
+ const authClient = new HybridSpaAuthorizationCodeClient(clientConfig);
44
+ this.logger.verbose("Auth code client created");
45
+ // Create silent handler
46
+ const silentHandler = new SilentHandler(authClient, this.browserStorage, authCodeRequest, this.logger, this.config.system, this.performanceClient);
47
+ // Handle auth code parameters from request
48
+ return silentHandler.handleCodeResponseFromServer({
49
+ code: request.code,
50
+ msgraph_host: request.msGraphHost,
51
+ cloud_graph_host_name: request.cloudGraphHostName,
52
+ cloud_instance_host_name: request.cloudInstanceHostName,
53
+ }, silentRequest.state, authClient.authority, this.networkClient, false);
54
+ }
55
+ catch (e) {
56
+ if (e instanceof AuthError) {
57
+ e.setCorrelationId(this.correlationId);
58
+ serverTelemetryManager.cacheFailedRequest(e);
59
+ }
60
+ this.browserStorage.cleanRequestByState(silentRequest.state);
61
+ throw e;
62
+ }
63
+ }
64
+ /**
65
+ * Currently Unsupported
66
+ */
67
+ logout() {
68
+ // Synchronous so we must reject
69
+ return Promise.reject(BrowserAuthError.createSilentLogoutUnsupportedError());
70
+ }
71
71
  }
72
72
 
73
73
  export { SilentAuthCodeClient };
@@ -1,22 +1,22 @@
1
- import { StandardInteractionClient } from "./StandardInteractionClient";
2
- import { CommonSilentFlowRequest, AuthenticationResult, SilentFlowClient, ServerTelemetryManager, AccountInfo, AzureCloudOptions } from "@azure/msal-common";
3
- import { SilentRequest } from "../request/SilentRequest";
4
- export declare class SilentCacheClient extends StandardInteractionClient {
5
- /**
6
- * Returns unexpired tokens from the cache, if available
7
- * @param silentRequest
8
- */
9
- acquireToken(silentRequest: CommonSilentFlowRequest): Promise<AuthenticationResult>;
10
- /**
11
- * Currently Unsupported
12
- */
13
- logout(): Promise<void>;
14
- /**
15
- * Creates an Silent Flow Client with the given authority, or the default authority.
16
- * @param serverTelemetryManager
17
- * @param authorityUrl
18
- */
19
- protected createSilentFlowClient(serverTelemetryManager: ServerTelemetryManager, authorityUrl?: string, azureCloudOptions?: AzureCloudOptions): Promise<SilentFlowClient>;
20
- initializeSilentRequest(request: SilentRequest, account: AccountInfo): Promise<CommonSilentFlowRequest>;
21
- }
1
+ import { StandardInteractionClient } from "./StandardInteractionClient";
2
+ import { CommonSilentFlowRequest, AuthenticationResult, SilentFlowClient, ServerTelemetryManager, AccountInfo, AzureCloudOptions } from "@azure/msal-common";
3
+ import { SilentRequest } from "../request/SilentRequest";
4
+ export declare class SilentCacheClient extends StandardInteractionClient {
5
+ /**
6
+ * Returns unexpired tokens from the cache, if available
7
+ * @param silentRequest
8
+ */
9
+ acquireToken(silentRequest: CommonSilentFlowRequest): Promise<AuthenticationResult>;
10
+ /**
11
+ * Currently Unsupported
12
+ */
13
+ logout(): Promise<void>;
14
+ /**
15
+ * Creates an Silent Flow Client with the given authority, or the default authority.
16
+ * @param serverTelemetryManager
17
+ * @param authorityUrl
18
+ */
19
+ protected createSilentFlowClient(serverTelemetryManager: ServerTelemetryManager, authorityUrl?: string, azureCloudOptions?: AzureCloudOptions): Promise<SilentFlowClient>;
20
+ initializeSilentRequest(request: SilentRequest, account: AccountInfo): Promise<CommonSilentFlowRequest>;
21
+ }
22
22
  //# sourceMappingURL=SilentCacheClient.d.ts.map
@@ -1,76 +1,76 @@
1
- /*! @azure/msal-browser v3.0.0-alpha.1 2023-05-08 */
1
+ /*! @azure/msal-browser v3.0.0-alpha.2 2023-05-17 */
2
2
  'use strict';
3
3
  import { StandardInteractionClient } from './StandardInteractionClient.js';
4
4
  import { PerformanceEvents, AuthError, SilentFlowClient } from '@azure/msal-common';
5
5
  import { ApiId } from '../utils/BrowserConstants.js';
6
6
  import { BrowserAuthError, BrowserAuthErrorMessage } from '../error/BrowserAuthError.js';
7
7
 
8
- /*
9
- * Copyright (c) Microsoft Corporation. All rights reserved.
10
- * Licensed under the MIT License.
11
- */
12
- class SilentCacheClient extends StandardInteractionClient {
13
- /**
14
- * Returns unexpired tokens from the cache, if available
15
- * @param silentRequest
16
- */
17
- async acquireToken(silentRequest) {
18
- const acquireTokenMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.SilentCacheClientAcquireToken, silentRequest.correlationId);
19
- // Telemetry manager only used to increment cacheHits here
20
- const serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenSilent_silentFlow);
21
- const silentAuthClient = await this.createSilentFlowClient(serverTelemetryManager, silentRequest.authority, silentRequest.azureCloudOptions);
22
- this.logger.verbose("Silent auth client created");
23
- try {
24
- const cachedToken = await silentAuthClient.acquireCachedToken(silentRequest);
25
- acquireTokenMeasurement.endMeasurement({
26
- success: true,
27
- fromCache: true,
28
- });
29
- return cachedToken;
30
- }
31
- catch (error) {
32
- if (error instanceof BrowserAuthError &&
33
- error.errorCode ===
34
- BrowserAuthErrorMessage.signingKeyNotFoundInStorage.code) {
35
- this.logger.verbose("Signing keypair for bound access token not found. Refreshing bound access token and generating a new crypto keypair.");
36
- }
37
- acquireTokenMeasurement.endMeasurement({
38
- errorCode: (error instanceof AuthError && error.errorCode) ||
39
- undefined,
40
- subErrorCode: (error instanceof AuthError && error.subError) || undefined,
41
- success: false,
42
- });
43
- throw error;
44
- }
45
- }
46
- /**
47
- * Currently Unsupported
48
- */
49
- logout() {
50
- // Synchronous so we must reject
51
- return Promise.reject(BrowserAuthError.createSilentLogoutUnsupportedError());
52
- }
53
- /**
54
- * Creates an Silent Flow Client with the given authority, or the default authority.
55
- * @param serverTelemetryManager
56
- * @param authorityUrl
57
- */
58
- async createSilentFlowClient(serverTelemetryManager, authorityUrl, azureCloudOptions) {
59
- // Create auth module.
60
- this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientGetClientConfiguration, this.correlationId);
61
- const clientConfig = await this.getClientConfiguration(serverTelemetryManager, authorityUrl, azureCloudOptions);
62
- return new SilentFlowClient(clientConfig, this.performanceClient);
63
- }
64
- async initializeSilentRequest(request, account) {
65
- this.performanceClient.addQueueMeasurement(PerformanceEvents.InitializeSilentRequest, this.correlationId);
66
- this.performanceClient.setPreQueueTime(PerformanceEvents.InitializeBaseRequest, this.correlationId);
67
- return {
68
- ...request,
69
- ...(await this.initializeBaseRequest(request)),
70
- account: account,
71
- forceRefresh: request.forceRefresh || false,
72
- };
73
- }
8
+ /*
9
+ * Copyright (c) Microsoft Corporation. All rights reserved.
10
+ * Licensed under the MIT License.
11
+ */
12
+ class SilentCacheClient extends StandardInteractionClient {
13
+ /**
14
+ * Returns unexpired tokens from the cache, if available
15
+ * @param silentRequest
16
+ */
17
+ async acquireToken(silentRequest) {
18
+ const acquireTokenMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.SilentCacheClientAcquireToken, silentRequest.correlationId);
19
+ // Telemetry manager only used to increment cacheHits here
20
+ const serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenSilent_silentFlow);
21
+ const silentAuthClient = await this.createSilentFlowClient(serverTelemetryManager, silentRequest.authority, silentRequest.azureCloudOptions);
22
+ this.logger.verbose("Silent auth client created");
23
+ try {
24
+ const cachedToken = await silentAuthClient.acquireCachedToken(silentRequest);
25
+ acquireTokenMeasurement.endMeasurement({
26
+ success: true,
27
+ fromCache: true,
28
+ });
29
+ return cachedToken;
30
+ }
31
+ catch (error) {
32
+ if (error instanceof BrowserAuthError &&
33
+ error.errorCode ===
34
+ BrowserAuthErrorMessage.signingKeyNotFoundInStorage.code) {
35
+ this.logger.verbose("Signing keypair for bound access token not found. Refreshing bound access token and generating a new crypto keypair.");
36
+ }
37
+ acquireTokenMeasurement.endMeasurement({
38
+ errorCode: (error instanceof AuthError && error.errorCode) ||
39
+ undefined,
40
+ subErrorCode: (error instanceof AuthError && error.subError) || undefined,
41
+ success: false,
42
+ });
43
+ throw error;
44
+ }
45
+ }
46
+ /**
47
+ * Currently Unsupported
48
+ */
49
+ logout() {
50
+ // Synchronous so we must reject
51
+ return Promise.reject(BrowserAuthError.createSilentLogoutUnsupportedError());
52
+ }
53
+ /**
54
+ * Creates an Silent Flow Client with the given authority, or the default authority.
55
+ * @param serverTelemetryManager
56
+ * @param authorityUrl
57
+ */
58
+ async createSilentFlowClient(serverTelemetryManager, authorityUrl, azureCloudOptions) {
59
+ // Create auth module.
60
+ this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientGetClientConfiguration, this.correlationId);
61
+ const clientConfig = await this.getClientConfiguration(serverTelemetryManager, authorityUrl, azureCloudOptions);
62
+ return new SilentFlowClient(clientConfig, this.performanceClient);
63
+ }
64
+ async initializeSilentRequest(request, account) {
65
+ this.performanceClient.addQueueMeasurement(PerformanceEvents.InitializeSilentRequest, this.correlationId);
66
+ this.performanceClient.setPreQueueTime(PerformanceEvents.InitializeBaseRequest, this.correlationId);
67
+ return {
68
+ ...request,
69
+ ...(await this.initializeBaseRequest(request)),
70
+ account: account,
71
+ forceRefresh: request.forceRefresh || false,
72
+ };
73
+ }
74
74
  }
75
75
 
76
76
  export { SilentCacheClient };
@@ -1,32 +1,32 @@
1
- import { AuthenticationResult, ICrypto, Logger, AuthorizationCodeClient, IPerformanceClient } from "@azure/msal-common";
2
- import { StandardInteractionClient } from "./StandardInteractionClient";
3
- import { AuthorizationUrlRequest } from "../request/AuthorizationUrlRequest";
4
- import { BrowserConfiguration } from "../config/Configuration";
5
- import { BrowserCacheManager } from "../cache/BrowserCacheManager";
6
- import { EventHandler } from "../event/EventHandler";
7
- import { INavigationClient } from "../navigation/INavigationClient";
8
- import { ApiId } from "../utils/BrowserConstants";
9
- import { SsoSilentRequest } from "../request/SsoSilentRequest";
10
- import { NativeMessageHandler } from "../broker/nativeBroker/NativeMessageHandler";
11
- export declare class SilentIframeClient extends StandardInteractionClient {
12
- protected apiId: ApiId;
13
- protected nativeStorage: BrowserCacheManager;
14
- constructor(config: BrowserConfiguration, storageImpl: BrowserCacheManager, browserCrypto: ICrypto, logger: Logger, eventHandler: EventHandler, navigationClient: INavigationClient, apiId: ApiId, performanceClient: IPerformanceClient, nativeStorageImpl: BrowserCacheManager, nativeMessageHandler?: NativeMessageHandler, correlationId?: string);
15
- /**
16
- * Acquires a token silently by opening a hidden iframe to the /authorize endpoint with prompt=none or prompt=no_session
17
- * @param request
18
- */
19
- acquireToken(request: SsoSilentRequest): Promise<AuthenticationResult>;
20
- /**
21
- * Currently Unsupported
22
- */
23
- logout(): Promise<void>;
24
- /**
25
- * Helper which acquires an authorization code silently using a hidden iframe from given url
26
- * using the scopes requested as part of the id, and exchanges the code for a set of OAuth tokens.
27
- * @param navigateUrl
28
- * @param userRequestScopes
29
- */
30
- protected silentTokenHelper(authClient: AuthorizationCodeClient, silentRequest: AuthorizationUrlRequest): Promise<AuthenticationResult>;
31
- }
1
+ import { AuthenticationResult, ICrypto, Logger, AuthorizationCodeClient, IPerformanceClient } from "@azure/msal-common";
2
+ import { StandardInteractionClient } from "./StandardInteractionClient";
3
+ import { AuthorizationUrlRequest } from "../request/AuthorizationUrlRequest";
4
+ import { BrowserConfiguration } from "../config/Configuration";
5
+ import { BrowserCacheManager } from "../cache/BrowserCacheManager";
6
+ import { EventHandler } from "../event/EventHandler";
7
+ import { INavigationClient } from "../navigation/INavigationClient";
8
+ import { ApiId } from "../utils/BrowserConstants";
9
+ import { SsoSilentRequest } from "../request/SsoSilentRequest";
10
+ import { NativeMessageHandler } from "../broker/nativeBroker/NativeMessageHandler";
11
+ export declare class SilentIframeClient extends StandardInteractionClient {
12
+ protected apiId: ApiId;
13
+ protected nativeStorage: BrowserCacheManager;
14
+ constructor(config: BrowserConfiguration, storageImpl: BrowserCacheManager, browserCrypto: ICrypto, logger: Logger, eventHandler: EventHandler, navigationClient: INavigationClient, apiId: ApiId, performanceClient: IPerformanceClient, nativeStorageImpl: BrowserCacheManager, nativeMessageHandler?: NativeMessageHandler, correlationId?: string);
15
+ /**
16
+ * Acquires a token silently by opening a hidden iframe to the /authorize endpoint with prompt=none or prompt=no_session
17
+ * @param request
18
+ */
19
+ acquireToken(request: SsoSilentRequest): Promise<AuthenticationResult>;
20
+ /**
21
+ * Currently Unsupported
22
+ */
23
+ logout(): Promise<void>;
24
+ /**
25
+ * Helper which acquires an authorization code silently using a hidden iframe from given url
26
+ * using the scopes requested as part of the id, and exchanges the code for a set of OAuth tokens.
27
+ * @param navigateUrl
28
+ * @param userRequestScopes
29
+ */
30
+ protected silentTokenHelper(authClient: AuthorizationCodeClient, silentRequest: AuthorizationUrlRequest): Promise<AuthenticationResult>;
31
+ }
32
32
  //# sourceMappingURL=SilentIframeClient.d.ts.map