@azure/msal-browser 4.7.0 → 4.9.0

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 (214) hide show
  1. package/dist/app/IPublicClientApplication.mjs +1 -1
  2. package/dist/app/PublicClientApplication.mjs +1 -1
  3. package/dist/app/PublicClientNext.mjs +1 -1
  4. package/dist/broker/nativeBroker/NativeMessageHandler.mjs +1 -1
  5. package/dist/broker/nativeBroker/NativeStatusCodes.mjs +1 -1
  6. package/dist/cache/AccountManager.mjs +1 -1
  7. package/dist/cache/AsyncMemoryStorage.mjs +1 -1
  8. package/dist/cache/BrowserCacheManager.d.ts +4 -41
  9. package/dist/cache/BrowserCacheManager.d.ts.map +1 -1
  10. package/dist/cache/BrowserCacheManager.mjs +18 -143
  11. package/dist/cache/BrowserCacheManager.mjs.map +1 -1
  12. package/dist/cache/CacheHelpers.mjs +1 -1
  13. package/dist/cache/CookieStorage.mjs +1 -1
  14. package/dist/cache/DatabaseStorage.mjs +1 -1
  15. package/dist/cache/LocalStorage.mjs +1 -1
  16. package/dist/cache/MemoryStorage.mjs +1 -1
  17. package/dist/cache/SessionStorage.mjs +1 -1
  18. package/dist/cache/TokenCache.mjs +1 -1
  19. package/dist/config/Configuration.d.ts.map +1 -1
  20. package/dist/config/Configuration.mjs +12 -3
  21. package/dist/config/Configuration.mjs.map +1 -1
  22. package/dist/controllers/ControllerFactory.mjs +1 -1
  23. package/dist/controllers/NestedAppAuthController.d.ts +2 -2
  24. package/dist/controllers/NestedAppAuthController.d.ts.map +1 -1
  25. package/dist/controllers/NestedAppAuthController.mjs +1 -1
  26. package/dist/controllers/NestedAppAuthController.mjs.map +1 -1
  27. package/dist/controllers/StandardController.d.ts.map +1 -1
  28. package/dist/controllers/StandardController.mjs +28 -16
  29. package/dist/controllers/StandardController.mjs.map +1 -1
  30. package/dist/controllers/UnknownOperatingContextController.d.ts +2 -2
  31. package/dist/controllers/UnknownOperatingContextController.d.ts.map +1 -1
  32. package/dist/controllers/UnknownOperatingContextController.mjs +1 -1
  33. package/dist/controllers/UnknownOperatingContextController.mjs.map +1 -1
  34. package/dist/crypto/BrowserCrypto.d.ts +11 -0
  35. package/dist/crypto/BrowserCrypto.d.ts.map +1 -1
  36. package/dist/crypto/BrowserCrypto.mjs +68 -5
  37. package/dist/crypto/BrowserCrypto.mjs.map +1 -1
  38. package/dist/crypto/CryptoOps.mjs +1 -1
  39. package/dist/crypto/PkceGenerator.mjs +1 -1
  40. package/dist/crypto/SignedHttpRequest.mjs +1 -1
  41. package/dist/encode/Base64Decode.mjs +1 -1
  42. package/dist/encode/Base64Encode.mjs +1 -1
  43. package/dist/error/BrowserAuthError.d.ts +3 -5
  44. package/dist/error/BrowserAuthError.d.ts.map +1 -1
  45. package/dist/error/BrowserAuthError.mjs +5 -7
  46. package/dist/error/BrowserAuthError.mjs.map +1 -1
  47. package/dist/error/BrowserAuthErrorCodes.d.ts +3 -1
  48. package/dist/error/BrowserAuthErrorCodes.d.ts.map +1 -1
  49. package/dist/error/BrowserAuthErrorCodes.mjs +6 -4
  50. package/dist/error/BrowserAuthErrorCodes.mjs.map +1 -1
  51. package/dist/error/BrowserConfigurationAuthError.mjs +1 -1
  52. package/dist/error/BrowserConfigurationAuthErrorCodes.mjs +1 -1
  53. package/dist/error/NativeAuthError.mjs +1 -1
  54. package/dist/error/NativeAuthErrorCodes.mjs +1 -1
  55. package/dist/error/NestedAppAuthError.mjs +1 -1
  56. package/dist/event/EventHandler.mjs +1 -1
  57. package/dist/event/EventMessage.mjs +1 -1
  58. package/dist/event/EventType.mjs +1 -1
  59. package/dist/index.mjs +1 -1
  60. package/dist/interaction_client/BaseInteractionClient.mjs +1 -1
  61. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.mjs +1 -1
  62. package/dist/interaction_client/NativeInteractionClient.d.ts.map +1 -1
  63. package/dist/interaction_client/NativeInteractionClient.mjs +9 -4
  64. package/dist/interaction_client/NativeInteractionClient.mjs.map +1 -1
  65. package/dist/interaction_client/PopupClient.d.ts +14 -1
  66. package/dist/interaction_client/PopupClient.d.ts.map +1 -1
  67. package/dist/interaction_client/PopupClient.mjs +66 -57
  68. package/dist/interaction_client/PopupClient.mjs.map +1 -1
  69. package/dist/interaction_client/RedirectClient.d.ts +21 -4
  70. package/dist/interaction_client/RedirectClient.d.ts.map +1 -1
  71. package/dist/interaction_client/RedirectClient.mjs +133 -70
  72. package/dist/interaction_client/RedirectClient.mjs.map +1 -1
  73. package/dist/interaction_client/SilentAuthCodeClient.d.ts.map +1 -1
  74. package/dist/interaction_client/SilentAuthCodeClient.mjs +1 -1
  75. package/dist/interaction_client/SilentAuthCodeClient.mjs.map +1 -1
  76. package/dist/interaction_client/SilentCacheClient.mjs +1 -1
  77. package/dist/interaction_client/SilentIframeClient.d.ts +13 -3
  78. package/dist/interaction_client/SilentIframeClient.d.ts.map +1 -1
  79. package/dist/interaction_client/SilentIframeClient.mjs +64 -41
  80. package/dist/interaction_client/SilentIframeClient.mjs.map +1 -1
  81. package/dist/interaction_client/SilentRefreshClient.mjs +1 -1
  82. package/dist/interaction_client/StandardInteractionClient.d.ts +2 -9
  83. package/dist/interaction_client/StandardInteractionClient.d.ts.map +1 -1
  84. package/dist/interaction_client/StandardInteractionClient.mjs +2 -22
  85. package/dist/interaction_client/StandardInteractionClient.mjs.map +1 -1
  86. package/dist/interaction_handler/InteractionHandler.d.ts +4 -5
  87. package/dist/interaction_handler/InteractionHandler.d.ts.map +1 -1
  88. package/dist/interaction_handler/InteractionHandler.mjs +3 -3
  89. package/dist/interaction_handler/InteractionHandler.mjs.map +1 -1
  90. package/dist/interaction_handler/SilentHandler.d.ts +4 -2
  91. package/dist/interaction_handler/SilentHandler.d.ts.map +1 -1
  92. package/dist/interaction_handler/SilentHandler.mjs +13 -3
  93. package/dist/interaction_handler/SilentHandler.mjs.map +1 -1
  94. package/dist/naa/BridgeError.mjs +1 -1
  95. package/dist/naa/BridgeProxy.mjs +1 -1
  96. package/dist/naa/BridgeStatusCode.mjs +1 -1
  97. package/dist/naa/mapping/NestedAppAuthAdapter.d.ts.map +1 -1
  98. package/dist/naa/mapping/NestedAppAuthAdapter.mjs +2 -3
  99. package/dist/naa/mapping/NestedAppAuthAdapter.mjs.map +1 -1
  100. package/dist/navigation/NavigationClient.mjs +1 -1
  101. package/dist/network/FetchClient.mjs +1 -1
  102. package/dist/operatingcontext/BaseOperatingContext.mjs +1 -1
  103. package/dist/operatingcontext/NestedAppOperatingContext.mjs +1 -1
  104. package/dist/operatingcontext/StandardOperatingContext.mjs +1 -1
  105. package/dist/operatingcontext/UnknownOperatingContext.mjs +1 -1
  106. package/dist/packageMetadata.d.ts +1 -1
  107. package/dist/packageMetadata.mjs +2 -2
  108. package/dist/protocol/Authorize.d.ts +65 -0
  109. package/dist/protocol/Authorize.d.ts.map +1 -0
  110. package/dist/protocol/Authorize.mjs +217 -0
  111. package/dist/protocol/Authorize.mjs.map +1 -0
  112. package/dist/request/AuthorizationUrlRequest.d.ts +2 -4
  113. package/dist/request/AuthorizationUrlRequest.d.ts.map +1 -1
  114. package/dist/request/PopupRequest.d.ts +1 -1
  115. package/dist/request/PopupRequest.d.ts.map +1 -1
  116. package/dist/request/RedirectRequest.d.ts +1 -1
  117. package/dist/request/RedirectRequest.d.ts.map +1 -1
  118. package/dist/request/RequestHelpers.mjs +1 -1
  119. package/dist/request/SsoSilentRequest.d.ts +1 -1
  120. package/dist/request/SsoSilentRequest.d.ts.map +1 -1
  121. package/dist/response/ResponseHandler.d.ts +3 -3
  122. package/dist/response/ResponseHandler.d.ts.map +1 -1
  123. package/dist/response/ResponseHandler.mjs +1 -1
  124. package/dist/response/ResponseHandler.mjs.map +1 -1
  125. package/dist/telemetry/BrowserPerformanceClient.mjs +1 -1
  126. package/dist/telemetry/BrowserPerformanceMeasurement.mjs +1 -1
  127. package/dist/utils/BrowserConstants.d.ts +1 -10
  128. package/dist/utils/BrowserConstants.d.ts.map +1 -1
  129. package/dist/utils/BrowserConstants.mjs +2 -11
  130. package/dist/utils/BrowserConstants.mjs.map +1 -1
  131. package/dist/utils/BrowserProtocolUtils.mjs +1 -1
  132. package/dist/utils/BrowserUtils.mjs +1 -1
  133. package/lib/msal-browser.cjs +2402 -2345
  134. package/lib/msal-browser.cjs.map +1 -1
  135. package/lib/msal-browser.js +2402 -2345
  136. package/lib/msal-browser.js.map +1 -1
  137. package/lib/msal-browser.min.js +68 -66
  138. package/lib/types/cache/BrowserCacheManager.d.ts +4 -41
  139. package/lib/types/cache/BrowserCacheManager.d.ts.map +1 -1
  140. package/lib/types/config/Configuration.d.ts.map +1 -1
  141. package/lib/types/controllers/NestedAppAuthController.d.ts +2 -2
  142. package/lib/types/controllers/NestedAppAuthController.d.ts.map +1 -1
  143. package/lib/types/controllers/StandardController.d.ts.map +1 -1
  144. package/lib/types/controllers/UnknownOperatingContextController.d.ts +2 -2
  145. package/lib/types/controllers/UnknownOperatingContextController.d.ts.map +1 -1
  146. package/lib/types/crypto/BrowserCrypto.d.ts +11 -0
  147. package/lib/types/crypto/BrowserCrypto.d.ts.map +1 -1
  148. package/lib/types/error/BrowserAuthError.d.ts +3 -5
  149. package/lib/types/error/BrowserAuthError.d.ts.map +1 -1
  150. package/lib/types/error/BrowserAuthErrorCodes.d.ts +3 -1
  151. package/lib/types/error/BrowserAuthErrorCodes.d.ts.map +1 -1
  152. package/lib/types/interaction_client/NativeInteractionClient.d.ts.map +1 -1
  153. package/lib/types/interaction_client/PopupClient.d.ts +14 -1
  154. package/lib/types/interaction_client/PopupClient.d.ts.map +1 -1
  155. package/lib/types/interaction_client/RedirectClient.d.ts +21 -4
  156. package/lib/types/interaction_client/RedirectClient.d.ts.map +1 -1
  157. package/lib/types/interaction_client/SilentAuthCodeClient.d.ts.map +1 -1
  158. package/lib/types/interaction_client/SilentIframeClient.d.ts +13 -3
  159. package/lib/types/interaction_client/SilentIframeClient.d.ts.map +1 -1
  160. package/lib/types/interaction_client/StandardInteractionClient.d.ts +2 -9
  161. package/lib/types/interaction_client/StandardInteractionClient.d.ts.map +1 -1
  162. package/lib/types/interaction_handler/InteractionHandler.d.ts +4 -5
  163. package/lib/types/interaction_handler/InteractionHandler.d.ts.map +1 -1
  164. package/lib/types/interaction_handler/SilentHandler.d.ts +4 -2
  165. package/lib/types/interaction_handler/SilentHandler.d.ts.map +1 -1
  166. package/lib/types/naa/mapping/NestedAppAuthAdapter.d.ts.map +1 -1
  167. package/lib/types/packageMetadata.d.ts +1 -1
  168. package/lib/types/protocol/Authorize.d.ts +65 -0
  169. package/lib/types/protocol/Authorize.d.ts.map +1 -0
  170. package/lib/types/request/AuthorizationUrlRequest.d.ts +2 -4
  171. package/lib/types/request/AuthorizationUrlRequest.d.ts.map +1 -1
  172. package/lib/types/request/PopupRequest.d.ts +1 -1
  173. package/lib/types/request/PopupRequest.d.ts.map +1 -1
  174. package/lib/types/request/RedirectRequest.d.ts +1 -1
  175. package/lib/types/request/RedirectRequest.d.ts.map +1 -1
  176. package/lib/types/request/SsoSilentRequest.d.ts +1 -1
  177. package/lib/types/request/SsoSilentRequest.d.ts.map +1 -1
  178. package/lib/types/response/ResponseHandler.d.ts +3 -3
  179. package/lib/types/response/ResponseHandler.d.ts.map +1 -1
  180. package/lib/types/utils/BrowserConstants.d.ts +1 -10
  181. package/lib/types/utils/BrowserConstants.d.ts.map +1 -1
  182. package/package.json +2 -2
  183. package/src/cache/BrowserCacheManager.ts +30 -205
  184. package/src/config/Configuration.ts +14 -2
  185. package/src/controllers/NestedAppAuthController.ts +2 -0
  186. package/src/controllers/StandardController.ts +35 -24
  187. package/src/controllers/UnknownOperatingContextController.ts +2 -0
  188. package/src/crypto/BrowserCrypto.ts +91 -2
  189. package/src/error/BrowserAuthError.ts +6 -8
  190. package/src/error/BrowserAuthErrorCodes.ts +3 -1
  191. package/src/interaction_client/NativeInteractionClient.ts +11 -2
  192. package/src/interaction_client/PopupClient.ts +174 -111
  193. package/src/interaction_client/RedirectClient.ts +269 -132
  194. package/src/interaction_client/SilentAuthCodeClient.ts +2 -2
  195. package/src/interaction_client/SilentIframeClient.ts +168 -100
  196. package/src/interaction_client/StandardInteractionClient.ts +3 -43
  197. package/src/interaction_handler/InteractionHandler.ts +8 -7
  198. package/src/interaction_handler/SilentHandler.ts +31 -2
  199. package/src/naa/mapping/NestedAppAuthAdapter.ts +1 -2
  200. package/src/packageMetadata.ts +1 -1
  201. package/src/protocol/Authorize.ts +490 -0
  202. package/src/request/AuthorizationUrlRequest.ts +3 -5
  203. package/src/request/PopupRequest.ts +1 -0
  204. package/src/request/RedirectRequest.ts +1 -0
  205. package/src/request/SsoSilentRequest.ts +1 -0
  206. package/src/response/ResponseHandler.ts +3 -3
  207. package/src/utils/BrowserConstants.ts +1 -10
  208. package/dist/interaction_handler/RedirectHandler.d.ts +0 -33
  209. package/dist/interaction_handler/RedirectHandler.d.ts.map +0 -1
  210. package/dist/interaction_handler/RedirectHandler.mjs +0 -144
  211. package/dist/interaction_handler/RedirectHandler.mjs.map +0 -1
  212. package/lib/types/interaction_handler/RedirectHandler.d.ts +0 -33
  213. package/lib/types/interaction_handler/RedirectHandler.d.ts.map +0 -1
  214. package/src/interaction_handler/RedirectHandler.ts +0 -251
@@ -1,144 +0,0 @@
1
- /*! @azure/msal-browser v4.7.0 2025-03-11 */
2
- 'use strict';
3
- import { createClientAuthError, ClientAuthErrorCodes, ServerError, invokeAsync, PerformanceEvents } from '@azure/msal-common/browser';
4
- import { createBrowserAuthError } from '../error/BrowserAuthError.mjs';
5
- import { TemporaryCacheKeys, ApiId } from '../utils/BrowserConstants.mjs';
6
- import { emptyNavigateUri, userCancelled } from '../error/BrowserAuthErrorCodes.mjs';
7
-
8
- /*
9
- * Copyright (c) Microsoft Corporation. All rights reserved.
10
- * Licensed under the MIT License.
11
- */
12
- class RedirectHandler {
13
- constructor(authCodeModule, storageImpl, authCodeRequest, logger, performanceClient) {
14
- this.authModule = authCodeModule;
15
- this.browserStorage = storageImpl;
16
- this.authCodeRequest = authCodeRequest;
17
- this.logger = logger;
18
- this.performanceClient = performanceClient;
19
- }
20
- /**
21
- * Redirects window to given URL.
22
- * @param urlNavigate
23
- */
24
- async initiateAuthRequest(requestUrl, params) {
25
- this.logger.verbose("RedirectHandler.initiateAuthRequest called");
26
- // Navigate if valid URL
27
- if (requestUrl) {
28
- // Cache start page, returns to this page after redirectUri if navigateToLoginRequestUrl is true
29
- if (params.redirectStartPage) {
30
- this.logger.verbose("RedirectHandler.initiateAuthRequest: redirectStartPage set, caching start page");
31
- this.browserStorage.setTemporaryCache(TemporaryCacheKeys.ORIGIN_URI, params.redirectStartPage, true);
32
- }
33
- // Set interaction status in the library.
34
- this.browserStorage.setTemporaryCache(TemporaryCacheKeys.CORRELATION_ID, this.authCodeRequest.correlationId, true);
35
- this.browserStorage.cacheCodeRequest(this.authCodeRequest);
36
- this.logger.infoPii(`RedirectHandler.initiateAuthRequest: Navigate to: ${requestUrl}`);
37
- const navigationOptions = {
38
- apiId: ApiId.acquireTokenRedirect,
39
- timeout: params.redirectTimeout,
40
- noHistory: false,
41
- };
42
- // If onRedirectNavigate is implemented, invoke it and provide requestUrl
43
- if (typeof params.onRedirectNavigate === "function") {
44
- this.logger.verbose("RedirectHandler.initiateAuthRequest: Invoking onRedirectNavigate callback");
45
- const navigate = params.onRedirectNavigate(requestUrl);
46
- // Returning false from onRedirectNavigate will stop navigation
47
- if (navigate !== false) {
48
- this.logger.verbose("RedirectHandler.initiateAuthRequest: onRedirectNavigate did not return false, navigating");
49
- await params.navigationClient.navigateExternal(requestUrl, navigationOptions);
50
- return;
51
- }
52
- else {
53
- this.logger.verbose("RedirectHandler.initiateAuthRequest: onRedirectNavigate returned false, stopping navigation");
54
- return;
55
- }
56
- }
57
- else {
58
- // Navigate window to request URL
59
- this.logger.verbose("RedirectHandler.initiateAuthRequest: Navigating window to navigate url");
60
- await params.navigationClient.navigateExternal(requestUrl, navigationOptions);
61
- return;
62
- }
63
- }
64
- else {
65
- // Throw error if request URL is empty.
66
- this.logger.info("RedirectHandler.initiateAuthRequest: Navigate url is empty");
67
- throw createBrowserAuthError(emptyNavigateUri);
68
- }
69
- }
70
- /**
71
- * Handle authorization code response in the window.
72
- * @param hash
73
- */
74
- async handleCodeResponse(response, state) {
75
- this.logger.verbose("RedirectHandler.handleCodeResponse called");
76
- // Interaction is completed - remove interaction status.
77
- this.browserStorage.setInteractionInProgress(false);
78
- // Handle code response.
79
- const stateKey = this.browserStorage.generateStateKey(state);
80
- const requestState = this.browserStorage.getTemporaryCache(stateKey);
81
- if (!requestState) {
82
- throw createClientAuthError(ClientAuthErrorCodes.stateNotFound, "Cached State");
83
- }
84
- let authCodeResponse;
85
- try {
86
- authCodeResponse = this.authModule.handleFragmentResponse(response, requestState);
87
- }
88
- catch (e) {
89
- if (e instanceof ServerError &&
90
- e.subError === userCancelled) {
91
- // Translate server error caused by user closing native prompt to corresponding first class MSAL error
92
- throw createBrowserAuthError(userCancelled);
93
- }
94
- else {
95
- throw e;
96
- }
97
- }
98
- // Get cached items
99
- const nonceKey = this.browserStorage.generateNonceKey(requestState);
100
- const cachedNonce = this.browserStorage.getTemporaryCache(nonceKey);
101
- // Assign code to request
102
- this.authCodeRequest.code = authCodeResponse.code;
103
- // Check for new cloud instance
104
- if (authCodeResponse.cloud_instance_host_name) {
105
- await invokeAsync(this.authModule.updateAuthority.bind(this.authModule), PerformanceEvents.UpdateTokenEndpointAuthority, this.logger, this.performanceClient, this.authCodeRequest.correlationId)(authCodeResponse.cloud_instance_host_name, this.authCodeRequest.correlationId);
106
- }
107
- authCodeResponse.nonce = cachedNonce || undefined;
108
- authCodeResponse.state = requestState;
109
- // Add CCS parameters if available
110
- if (authCodeResponse.client_info) {
111
- this.authCodeRequest.clientInfo = authCodeResponse.client_info;
112
- }
113
- else {
114
- const cachedCcsCred = this.checkCcsCredentials();
115
- if (cachedCcsCred) {
116
- this.authCodeRequest.ccsCredential = cachedCcsCred;
117
- }
118
- }
119
- // Acquire token with retrieved code.
120
- const tokenResponse = (await this.authModule.acquireToken(this.authCodeRequest, authCodeResponse));
121
- this.browserStorage.cleanRequestByState(state);
122
- return tokenResponse;
123
- }
124
- /**
125
- * Looks up ccs creds in the cache
126
- */
127
- checkCcsCredentials() {
128
- // Look up ccs credential in temp cache
129
- const cachedCcsCred = this.browserStorage.getTemporaryCache(TemporaryCacheKeys.CCS_CREDENTIAL, true);
130
- if (cachedCcsCred) {
131
- try {
132
- return JSON.parse(cachedCcsCred);
133
- }
134
- catch (e) {
135
- this.authModule.logger.error("Cache credential could not be parsed");
136
- this.authModule.logger.errorPii(`Cache credential could not be parsed: ${cachedCcsCred}`);
137
- }
138
- }
139
- return null;
140
- }
141
- }
142
-
143
- export { RedirectHandler };
144
- //# sourceMappingURL=RedirectHandler.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RedirectHandler.mjs","sources":["../../src/interaction_handler/RedirectHandler.ts"],"sourcesContent":[null],"names":["BrowserAuthErrorCodes.emptyNavigateUri","BrowserAuthErrorCodes.userCancelled"],"mappings":"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"}
@@ -1,33 +0,0 @@
1
- import { AuthorizationCodeClient, CommonAuthorizationCodeRequest, Logger, IPerformanceClient, CcsCredential, ServerAuthorizationCodeResponse } from "@azure/msal-common/browser";
2
- import { BrowserCacheManager } from "../cache/BrowserCacheManager.js";
3
- import { INavigationClient } from "../navigation/INavigationClient.js";
4
- import { AuthenticationResult } from "../response/AuthenticationResult.js";
5
- export type RedirectParams = {
6
- navigationClient: INavigationClient;
7
- redirectTimeout: number;
8
- redirectStartPage: string;
9
- onRedirectNavigate?: (url: string) => void | boolean;
10
- };
11
- export declare class RedirectHandler {
12
- authModule: AuthorizationCodeClient;
13
- browserStorage: BrowserCacheManager;
14
- authCodeRequest: CommonAuthorizationCodeRequest;
15
- logger: Logger;
16
- performanceClient: IPerformanceClient;
17
- constructor(authCodeModule: AuthorizationCodeClient, storageImpl: BrowserCacheManager, authCodeRequest: CommonAuthorizationCodeRequest, logger: Logger, performanceClient: IPerformanceClient);
18
- /**
19
- * Redirects window to given URL.
20
- * @param urlNavigate
21
- */
22
- initiateAuthRequest(requestUrl: string, params: RedirectParams): Promise<void>;
23
- /**
24
- * Handle authorization code response in the window.
25
- * @param hash
26
- */
27
- handleCodeResponse(response: ServerAuthorizationCodeResponse, state: string): Promise<AuthenticationResult>;
28
- /**
29
- * Looks up ccs creds in the cache
30
- */
31
- protected checkCcsCredentials(): CcsCredential | null;
32
- }
33
- //# sourceMappingURL=RedirectHandler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RedirectHandler.d.ts","sourceRoot":"","sources":["../../../src/interaction_handler/RedirectHandler.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,uBAAuB,EACvB,8BAA8B,EAC9B,MAAM,EAEN,kBAAkB,EAGlB,aAAa,EAGb,+BAA+B,EAClC,MAAM,4BAA4B,CAAC;AAMpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAEvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAE3E,MAAM,MAAM,cAAc,GAAG;IACzB,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC;CACxD,CAAC;AAEF,qBAAa,eAAe;IACxB,UAAU,EAAE,uBAAuB,CAAC;IACpC,cAAc,EAAE,mBAAmB,CAAC;IACpC,eAAe,EAAE,8BAA8B,CAAC;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,kBAAkB,CAAC;gBAGlC,cAAc,EAAE,uBAAuB,EACvC,WAAW,EAAE,mBAAmB,EAChC,eAAe,EAAE,8BAA8B,EAC/C,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,kBAAkB;IASzC;;;OAGG;IACG,mBAAmB,CACrB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,cAAc,GACvB,OAAO,CAAC,IAAI,CAAC;IA6EhB;;;OAGG;IACG,kBAAkB,CACpB,QAAQ,EAAE,+BAA+B,EACzC,KAAK,EAAE,MAAM,GACd,OAAO,CAAC,oBAAoB,CAAC;IAgFhC;;OAEG;IACH,SAAS,CAAC,mBAAmB,IAAI,aAAa,GAAG,IAAI;CAoBxD"}
@@ -1,251 +0,0 @@
1
- /*
2
- * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * Licensed under the MIT License.
4
- */
5
-
6
- import {
7
- AuthorizationCodeClient,
8
- CommonAuthorizationCodeRequest,
9
- Logger,
10
- ServerError,
11
- IPerformanceClient,
12
- createClientAuthError,
13
- ClientAuthErrorCodes,
14
- CcsCredential,
15
- invokeAsync,
16
- PerformanceEvents,
17
- ServerAuthorizationCodeResponse,
18
- } from "@azure/msal-common/browser";
19
- import {
20
- createBrowserAuthError,
21
- BrowserAuthErrorCodes,
22
- } from "../error/BrowserAuthError.js";
23
- import { ApiId, TemporaryCacheKeys } from "../utils/BrowserConstants.js";
24
- import { BrowserCacheManager } from "../cache/BrowserCacheManager.js";
25
- import { INavigationClient } from "../navigation/INavigationClient.js";
26
- import { NavigationOptions } from "../navigation/NavigationOptions.js";
27
- import { AuthenticationResult } from "../response/AuthenticationResult.js";
28
-
29
- export type RedirectParams = {
30
- navigationClient: INavigationClient;
31
- redirectTimeout: number;
32
- redirectStartPage: string;
33
- onRedirectNavigate?: (url: string) => void | boolean;
34
- };
35
-
36
- export class RedirectHandler {
37
- authModule: AuthorizationCodeClient;
38
- browserStorage: BrowserCacheManager;
39
- authCodeRequest: CommonAuthorizationCodeRequest;
40
- logger: Logger;
41
- performanceClient: IPerformanceClient;
42
-
43
- constructor(
44
- authCodeModule: AuthorizationCodeClient,
45
- storageImpl: BrowserCacheManager,
46
- authCodeRequest: CommonAuthorizationCodeRequest,
47
- logger: Logger,
48
- performanceClient: IPerformanceClient
49
- ) {
50
- this.authModule = authCodeModule;
51
- this.browserStorage = storageImpl;
52
- this.authCodeRequest = authCodeRequest;
53
- this.logger = logger;
54
- this.performanceClient = performanceClient;
55
- }
56
-
57
- /**
58
- * Redirects window to given URL.
59
- * @param urlNavigate
60
- */
61
- async initiateAuthRequest(
62
- requestUrl: string,
63
- params: RedirectParams
64
- ): Promise<void> {
65
- this.logger.verbose("RedirectHandler.initiateAuthRequest called");
66
- // Navigate if valid URL
67
- if (requestUrl) {
68
- // Cache start page, returns to this page after redirectUri if navigateToLoginRequestUrl is true
69
- if (params.redirectStartPage) {
70
- this.logger.verbose(
71
- "RedirectHandler.initiateAuthRequest: redirectStartPage set, caching start page"
72
- );
73
- this.browserStorage.setTemporaryCache(
74
- TemporaryCacheKeys.ORIGIN_URI,
75
- params.redirectStartPage,
76
- true
77
- );
78
- }
79
-
80
- // Set interaction status in the library.
81
- this.browserStorage.setTemporaryCache(
82
- TemporaryCacheKeys.CORRELATION_ID,
83
- this.authCodeRequest.correlationId,
84
- true
85
- );
86
- this.browserStorage.cacheCodeRequest(this.authCodeRequest);
87
- this.logger.infoPii(
88
- `RedirectHandler.initiateAuthRequest: Navigate to: ${requestUrl}`
89
- );
90
- const navigationOptions: NavigationOptions = {
91
- apiId: ApiId.acquireTokenRedirect,
92
- timeout: params.redirectTimeout,
93
- noHistory: false,
94
- };
95
-
96
- // If onRedirectNavigate is implemented, invoke it and provide requestUrl
97
- if (typeof params.onRedirectNavigate === "function") {
98
- this.logger.verbose(
99
- "RedirectHandler.initiateAuthRequest: Invoking onRedirectNavigate callback"
100
- );
101
- const navigate = params.onRedirectNavigate(requestUrl);
102
-
103
- // Returning false from onRedirectNavigate will stop navigation
104
- if (navigate !== false) {
105
- this.logger.verbose(
106
- "RedirectHandler.initiateAuthRequest: onRedirectNavigate did not return false, navigating"
107
- );
108
- await params.navigationClient.navigateExternal(
109
- requestUrl,
110
- navigationOptions
111
- );
112
- return;
113
- } else {
114
- this.logger.verbose(
115
- "RedirectHandler.initiateAuthRequest: onRedirectNavigate returned false, stopping navigation"
116
- );
117
- return;
118
- }
119
- } else {
120
- // Navigate window to request URL
121
- this.logger.verbose(
122
- "RedirectHandler.initiateAuthRequest: Navigating window to navigate url"
123
- );
124
- await params.navigationClient.navigateExternal(
125
- requestUrl,
126
- navigationOptions
127
- );
128
- return;
129
- }
130
- } else {
131
- // Throw error if request URL is empty.
132
- this.logger.info(
133
- "RedirectHandler.initiateAuthRequest: Navigate url is empty"
134
- );
135
- throw createBrowserAuthError(
136
- BrowserAuthErrorCodes.emptyNavigateUri
137
- );
138
- }
139
- }
140
-
141
- /**
142
- * Handle authorization code response in the window.
143
- * @param hash
144
- */
145
- async handleCodeResponse(
146
- response: ServerAuthorizationCodeResponse,
147
- state: string
148
- ): Promise<AuthenticationResult> {
149
- this.logger.verbose("RedirectHandler.handleCodeResponse called");
150
-
151
- // Interaction is completed - remove interaction status.
152
- this.browserStorage.setInteractionInProgress(false);
153
-
154
- // Handle code response.
155
- const stateKey = this.browserStorage.generateStateKey(state);
156
- const requestState = this.browserStorage.getTemporaryCache(stateKey);
157
- if (!requestState) {
158
- throw createClientAuthError(
159
- ClientAuthErrorCodes.stateNotFound,
160
- "Cached State"
161
- );
162
- }
163
-
164
- let authCodeResponse;
165
- try {
166
- authCodeResponse = this.authModule.handleFragmentResponse(
167
- response,
168
- requestState
169
- );
170
- } catch (e) {
171
- if (
172
- e instanceof ServerError &&
173
- e.subError === BrowserAuthErrorCodes.userCancelled
174
- ) {
175
- // Translate server error caused by user closing native prompt to corresponding first class MSAL error
176
- throw createBrowserAuthError(
177
- BrowserAuthErrorCodes.userCancelled
178
- );
179
- } else {
180
- throw e;
181
- }
182
- }
183
-
184
- // Get cached items
185
- const nonceKey = this.browserStorage.generateNonceKey(requestState);
186
- const cachedNonce = this.browserStorage.getTemporaryCache(nonceKey);
187
-
188
- // Assign code to request
189
- this.authCodeRequest.code = authCodeResponse.code;
190
-
191
- // Check for new cloud instance
192
- if (authCodeResponse.cloud_instance_host_name) {
193
- await invokeAsync(
194
- this.authModule.updateAuthority.bind(this.authModule),
195
- PerformanceEvents.UpdateTokenEndpointAuthority,
196
- this.logger,
197
- this.performanceClient,
198
- this.authCodeRequest.correlationId
199
- )(
200
- authCodeResponse.cloud_instance_host_name,
201
- this.authCodeRequest.correlationId
202
- );
203
- }
204
-
205
- authCodeResponse.nonce = cachedNonce || undefined;
206
- authCodeResponse.state = requestState;
207
-
208
- // Add CCS parameters if available
209
- if (authCodeResponse.client_info) {
210
- this.authCodeRequest.clientInfo = authCodeResponse.client_info;
211
- } else {
212
- const cachedCcsCred = this.checkCcsCredentials();
213
- if (cachedCcsCred) {
214
- this.authCodeRequest.ccsCredential = cachedCcsCred;
215
- }
216
- }
217
-
218
- // Acquire token with retrieved code.
219
- const tokenResponse = (await this.authModule.acquireToken(
220
- this.authCodeRequest,
221
- authCodeResponse
222
- )) as AuthenticationResult;
223
-
224
- this.browserStorage.cleanRequestByState(state);
225
- return tokenResponse;
226
- }
227
-
228
- /**
229
- * Looks up ccs creds in the cache
230
- */
231
- protected checkCcsCredentials(): CcsCredential | null {
232
- // Look up ccs credential in temp cache
233
- const cachedCcsCred = this.browserStorage.getTemporaryCache(
234
- TemporaryCacheKeys.CCS_CREDENTIAL,
235
- true
236
- );
237
- if (cachedCcsCred) {
238
- try {
239
- return JSON.parse(cachedCcsCred) as CcsCredential;
240
- } catch (e) {
241
- this.authModule.logger.error(
242
- "Cache credential could not be parsed"
243
- );
244
- this.authModule.logger.errorPii(
245
- `Cache credential could not be parsed: ${cachedCcsCred}`
246
- );
247
- }
248
- }
249
- return null;
250
- }
251
- }