@azure/msal-browser 3.5.1-beta.1 → 3.7.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.
- package/dist/app/IPublicClientApplication.d.ts +51 -51
- package/dist/app/IPublicClientApplication.mjs +102 -102
- package/dist/app/IPublicClientApplication.mjs.map +1 -1
- package/dist/app/PublicClientApplication.d.ts +269 -268
- package/dist/app/PublicClientApplication.d.ts.map +1 -1
- package/dist/app/PublicClientApplication.mjs +333 -333
- package/dist/app/PublicClientApplication.mjs.map +1 -1
- package/dist/app/PublicClientNext.d.ts +273 -273
- package/dist/app/PublicClientNext.mjs +351 -351
- package/dist/app/PublicClientNext.mjs.map +1 -1
- package/dist/broker/nativeBroker/NativeMessageHandler.d.ts +62 -62
- package/dist/broker/nativeBroker/NativeMessageHandler.mjs +254 -254
- package/dist/broker/nativeBroker/NativeMessageHandler.mjs.map +1 -1
- package/dist/broker/nativeBroker/NativeRequest.d.ts +44 -44
- package/dist/broker/nativeBroker/NativeResponse.d.ts +48 -48
- package/dist/broker/nativeBroker/NativeStatusCodes.d.ts +7 -7
- package/dist/broker/nativeBroker/NativeStatusCodes.mjs +11 -11
- package/dist/broker/nativeBroker/NativeStatusCodes.mjs.map +1 -1
- package/dist/cache/AsyncMemoryStorage.d.ts +51 -51
- package/dist/cache/AsyncMemoryStorage.mjs +132 -132
- package/dist/cache/AsyncMemoryStorage.mjs.map +1 -1
- package/dist/cache/BrowserCacheManager.d.ts +395 -383
- package/dist/cache/BrowserCacheManager.d.ts.map +1 -1
- package/dist/cache/BrowserCacheManager.mjs +1283 -1263
- package/dist/cache/BrowserCacheManager.mjs.map +1 -1
- package/dist/cache/BrowserStorage.d.ts +11 -11
- package/dist/cache/BrowserStorage.mjs +32 -32
- package/dist/cache/BrowserStorage.mjs.map +1 -1
- package/dist/cache/CryptoKeyStore.d.ts +18 -18
- package/dist/cache/CryptoKeyStore.mjs +40 -40
- package/dist/cache/CryptoKeyStore.mjs.map +1 -1
- package/dist/cache/DatabaseStorage.d.ts +56 -56
- package/dist/cache/DatabaseStorage.mjs +190 -190
- package/dist/cache/DatabaseStorage.mjs.map +1 -1
- package/dist/cache/IAsyncMemoryStorage.d.ts +27 -27
- package/dist/cache/ITokenCache.d.ts +11 -11
- package/dist/cache/IWindowStorage.d.ts +27 -27
- package/dist/cache/MemoryStorage.d.ts +11 -11
- package/dist/cache/MemoryStorage.mjs +31 -31
- package/dist/cache/MemoryStorage.mjs.map +1 -1
- package/dist/cache/TokenCache.d.ts +77 -77
- package/dist/cache/TokenCache.d.ts.map +1 -1
- package/dist/cache/TokenCache.mjs +223 -225
- package/dist/cache/TokenCache.mjs.map +1 -1
- package/dist/config/Configuration.d.ts +206 -206
- package/dist/config/Configuration.d.ts.map +1 -1
- package/dist/config/Configuration.mjs +128 -128
- package/dist/config/Configuration.mjs.map +1 -1
- package/dist/controllers/ControllerFactory.d.ts +4 -4
- package/dist/controllers/ControllerFactory.d.ts.map +1 -1
- package/dist/controllers/ControllerFactory.mjs +29 -29
- package/dist/controllers/ControllerFactory.mjs.map +1 -1
- package/dist/controllers/IController.d.ts +61 -61
- package/dist/controllers/NestedAppAuthController.d.ts +95 -95
- package/dist/controllers/NestedAppAuthController.mjs +334 -334
- package/dist/controllers/NestedAppAuthController.mjs.map +1 -1
- package/dist/controllers/StandardController.d.ts +407 -407
- package/dist/controllers/StandardController.d.ts.map +1 -1
- package/dist/controllers/StandardController.mjs +1307 -1294
- package/dist/controllers/StandardController.mjs.map +1 -1
- package/dist/controllers/UnknownOperatingContextController.d.ts +87 -87
- package/dist/controllers/UnknownOperatingContextController.mjs +264 -264
- package/dist/controllers/UnknownOperatingContextController.mjs.map +1 -1
- package/dist/crypto/BrowserCrypto.d.ts +44 -44
- package/dist/crypto/BrowserCrypto.mjs +93 -93
- package/dist/crypto/BrowserCrypto.mjs.map +1 -1
- package/dist/crypto/CryptoOps.d.ts +63 -63
- package/dist/crypto/CryptoOps.mjs +145 -145
- package/dist/crypto/CryptoOps.mjs.map +1 -1
- package/dist/crypto/PkceGenerator.d.ts +8 -8
- package/dist/crypto/PkceGenerator.mjs +54 -54
- package/dist/crypto/PkceGenerator.mjs.map +1 -1
- package/dist/crypto/SignedHttpRequest.d.ts +30 -30
- package/dist/crypto/SignedHttpRequest.mjs +39 -39
- package/dist/crypto/SignedHttpRequest.mjs.map +1 -1
- package/dist/encode/Base64Decode.d.ts +9 -9
- package/dist/encode/Base64Decode.mjs +36 -36
- package/dist/encode/Base64Decode.mjs.map +1 -1
- package/dist/encode/Base64Encode.d.ts +19 -19
- package/dist/encode/Base64Encode.mjs +43 -43
- package/dist/encode/Base64Encode.mjs.map +1 -1
- package/dist/error/BrowserAuthError.d.ts +250 -250
- package/dist/error/BrowserAuthError.mjs +258 -258
- package/dist/error/BrowserAuthError.mjs.map +1 -1
- package/dist/error/BrowserAuthErrorCodes.d.ts +45 -45
- package/dist/error/BrowserAuthErrorCodes.mjs +49 -49
- package/dist/error/BrowserAuthErrorCodes.mjs.map +1 -1
- package/dist/error/BrowserConfigurationAuthError.d.ts +33 -33
- package/dist/error/BrowserConfigurationAuthError.mjs +40 -40
- package/dist/error/BrowserConfigurationAuthError.mjs.map +1 -1
- package/dist/error/BrowserConfigurationAuthErrorCodes.d.ts +3 -3
- package/dist/error/BrowserConfigurationAuthErrorCodes.mjs +7 -7
- package/dist/error/BrowserConfigurationAuthErrorCodes.mjs.map +1 -1
- package/dist/error/NativeAuthError.d.ts +29 -29
- package/dist/error/NativeAuthError.mjs +60 -60
- package/dist/error/NativeAuthError.mjs.map +1 -1
- package/dist/error/NativeAuthErrorCodes.d.ts +2 -2
- package/dist/error/NativeAuthErrorCodes.mjs +6 -6
- package/dist/error/NativeAuthErrorCodes.mjs.map +1 -1
- package/dist/error/NestedAppAuthError.d.ts +14 -14
- package/dist/error/NestedAppAuthError.mjs +23 -23
- package/dist/error/NestedAppAuthError.mjs.map +1 -1
- package/dist/event/EventHandler.d.ts +41 -41
- package/dist/event/EventHandler.mjs +119 -119
- package/dist/event/EventHandler.mjs.map +1 -1
- package/dist/event/EventMessage.d.ts +25 -25
- package/dist/event/EventMessage.mjs +68 -68
- package/dist/event/EventMessage.mjs.map +1 -1
- package/dist/event/EventType.d.ts +28 -28
- package/dist/event/EventType.mjs +31 -31
- package/dist/event/EventType.mjs.map +1 -1
- package/dist/index.d.ts +39 -39
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/interaction_client/BaseInteractionClient.d.ts +54 -54
- package/dist/interaction_client/BaseInteractionClient.mjs +152 -152
- package/dist/interaction_client/BaseInteractionClient.mjs.map +1 -1
- package/dist/interaction_client/HybridSpaAuthorizationCodeClient.d.ts +4 -4
- package/dist/interaction_client/HybridSpaAuthorizationCodeClient.mjs +10 -10
- package/dist/interaction_client/HybridSpaAuthorizationCodeClient.mjs.map +1 -1
- package/dist/interaction_client/NativeInteractionClient.d.ts +140 -140
- package/dist/interaction_client/NativeInteractionClient.d.ts.map +1 -1
- package/dist/interaction_client/NativeInteractionClient.mjs +541 -549
- package/dist/interaction_client/NativeInteractionClient.mjs.map +1 -1
- package/dist/interaction_client/PopupClient.d.ts +105 -105
- package/dist/interaction_client/PopupClient.mjs +432 -432
- package/dist/interaction_client/PopupClient.mjs.map +1 -1
- package/dist/interaction_client/RedirectClient.d.ts +49 -49
- package/dist/interaction_client/RedirectClient.mjs +311 -311
- package/dist/interaction_client/RedirectClient.mjs.map +1 -1
- package/dist/interaction_client/SilentAuthCodeClient.d.ts +23 -23
- package/dist/interaction_client/SilentAuthCodeClient.mjs +57 -57
- package/dist/interaction_client/SilentAuthCodeClient.mjs.map +1 -1
- package/dist/interaction_client/SilentCacheClient.d.ts +24 -24
- package/dist/interaction_client/SilentCacheClient.mjs +61 -61
- package/dist/interaction_client/SilentCacheClient.mjs.map +1 -1
- package/dist/interaction_client/SilentIframeClient.d.ts +32 -32
- package/dist/interaction_client/SilentIframeClient.mjs +96 -96
- package/dist/interaction_client/SilentIframeClient.mjs.map +1 -1
- package/dist/interaction_client/SilentRefreshClient.d.ts +20 -20
- package/dist/interaction_client/SilentRefreshClient.d.ts.map +1 -1
- package/dist/interaction_client/SilentRefreshClient.mjs +47 -43
- package/dist/interaction_client/SilentRefreshClient.mjs.map +1 -1
- package/dist/interaction_client/StandardInteractionClient.d.ts +54 -54
- package/dist/interaction_client/StandardInteractionClient.mjs +222 -222
- package/dist/interaction_client/StandardInteractionClient.mjs.map +1 -1
- package/dist/interaction_handler/InteractionHandler.d.ts +33 -33
- package/dist/interaction_handler/InteractionHandler.mjs +93 -93
- package/dist/interaction_handler/InteractionHandler.mjs.map +1 -1
- package/dist/interaction_handler/RedirectHandler.d.ts +32 -32
- package/dist/interaction_handler/RedirectHandler.mjs +134 -134
- package/dist/interaction_handler/RedirectHandler.mjs.map +1 -1
- package/dist/interaction_handler/SilentHandler.d.ts +13 -13
- package/dist/interaction_handler/SilentHandler.mjs +133 -133
- package/dist/interaction_handler/SilentHandler.mjs.map +1 -1
- package/dist/naa/AccountInfo.d.ts +11 -11
- package/dist/naa/AuthBridge.d.ts +8 -5
- package/dist/naa/AuthBridge.d.ts.map +1 -1
- package/dist/naa/AuthResult.d.ts +7 -0
- package/dist/naa/AuthResult.d.ts.map +1 -0
- package/dist/naa/BridgeCapabilities.d.ts +3 -3
- package/dist/naa/BridgeError.d.ts +9 -9
- package/dist/naa/BridgeError.mjs +7 -7
- package/dist/naa/BridgeError.mjs.map +1 -1
- package/dist/naa/BridgeProxy.d.ts +68 -72
- package/dist/naa/BridgeProxy.d.ts.map +1 -1
- package/dist/naa/BridgeProxy.mjs +155 -152
- package/dist/naa/BridgeProxy.mjs.map +1 -1
- package/dist/naa/BridgeRequest.d.ts +7 -6
- package/dist/naa/BridgeRequest.d.ts.map +1 -1
- package/dist/naa/BridgeRequestEnvelope.d.ts +12 -13
- package/dist/naa/BridgeRequestEnvelope.d.ts.map +1 -1
- package/dist/naa/BridgeResponseEnvelope.d.ts +13 -10
- package/dist/naa/BridgeResponseEnvelope.d.ts.map +1 -1
- package/dist/naa/BridgeStatusCode.d.ts +11 -10
- package/dist/naa/BridgeStatusCode.d.ts.map +1 -1
- package/dist/naa/BridgeStatusCode.mjs +15 -16
- package/dist/naa/BridgeStatusCode.mjs.map +1 -1
- package/dist/naa/IBridgeProxy.d.ts +10 -12
- package/dist/naa/IBridgeProxy.d.ts.map +1 -1
- package/dist/naa/{InitializeBridgeResponse.d.ts → InitContext.d.ts} +7 -7
- package/dist/naa/InitContext.d.ts.map +1 -0
- package/dist/naa/TokenRequest.d.ts +18 -19
- package/dist/naa/TokenRequest.d.ts.map +1 -1
- package/dist/naa/TokenResponse.d.ts +13 -15
- package/dist/naa/TokenResponse.d.ts.map +1 -1
- package/dist/naa/mapping/NestedAppAuthAdapter.d.ts +23 -23
- package/dist/naa/mapping/NestedAppAuthAdapter.d.ts.map +1 -1
- package/dist/naa/mapping/NestedAppAuthAdapter.mjs +141 -141
- package/dist/naa/mapping/NestedAppAuthAdapter.mjs.map +1 -1
- package/dist/navigation/INavigationClient.d.ts +16 -16
- package/dist/navigation/NavigationClient.d.ts +22 -22
- package/dist/navigation/NavigationClient.mjs +40 -40
- package/dist/navigation/NavigationClient.mjs.map +1 -1
- package/dist/navigation/NavigationOptions.d.ts +12 -12
- package/dist/network/FetchClient.d.ts +26 -26
- package/dist/network/FetchClient.mjs +99 -99
- package/dist/network/FetchClient.mjs.map +1 -1
- package/dist/operatingcontext/BaseOperatingContext.d.ts +41 -40
- package/dist/operatingcontext/BaseOperatingContext.d.ts.map +1 -1
- package/dist/operatingcontext/BaseOperatingContext.mjs +96 -45
- package/dist/operatingcontext/BaseOperatingContext.mjs.map +1 -1
- package/dist/operatingcontext/StandardOperatingContext.d.ts +25 -25
- package/dist/operatingcontext/StandardOperatingContext.mjs +43 -43
- package/dist/operatingcontext/StandardOperatingContext.mjs.map +1 -1
- package/dist/operatingcontext/TeamsAppOperatingContext.d.ts +32 -32
- package/dist/operatingcontext/TeamsAppOperatingContext.mjs +85 -85
- package/dist/operatingcontext/TeamsAppOperatingContext.mjs.map +1 -1
- package/dist/operatingcontext/UnknownOperatingContext.d.ts +25 -25
- package/dist/operatingcontext/UnknownOperatingContext.mjs +42 -42
- package/dist/operatingcontext/UnknownOperatingContext.mjs.map +1 -1
- package/dist/packageMetadata.d.ts +2 -2
- package/dist/packageMetadata.d.ts.map +1 -1
- package/dist/packageMetadata.mjs +4 -4
- package/dist/packageMetadata.mjs.map +1 -1
- package/dist/request/AuthorizationCodeRequest.d.ts +8 -8
- package/dist/request/AuthorizationUrlRequest.d.ts +8 -8
- package/dist/request/ClearCacheRequest.d.ts +10 -10
- package/dist/request/EndSessionPopupRequest.d.ts +18 -18
- package/dist/request/EndSessionRequest.d.ts +15 -15
- package/dist/request/PopupRequest.d.ts +34 -34
- package/dist/request/PopupWindowAttributes.d.ts +15 -15
- package/dist/request/RedirectRequest.d.ts +35 -35
- package/dist/request/SilentRequest.d.ts +32 -32
- package/dist/request/SsoSilentRequest.d.ts +29 -29
- package/dist/response/AuthenticationResult.d.ts +4 -4
- package/dist/response/ResponseHandler.d.ts +7 -7
- package/dist/response/ResponseHandler.mjs +36 -36
- package/dist/response/ResponseHandler.mjs.map +1 -1
- package/dist/telemetry/BrowserPerformanceClient.d.ts +34 -36
- package/dist/telemetry/BrowserPerformanceClient.d.ts.map +1 -1
- package/dist/telemetry/BrowserPerformanceClient.mjs +163 -126
- package/dist/telemetry/BrowserPerformanceClient.mjs.map +1 -1
- package/dist/telemetry/BrowserPerformanceMeasurement.d.ts +21 -21
- package/dist/telemetry/BrowserPerformanceMeasurement.mjs +92 -92
- package/dist/telemetry/BrowserPerformanceMeasurement.mjs.map +1 -1
- package/dist/utils/BrowserConstants.d.ts +180 -176
- package/dist/utils/BrowserConstants.d.ts.map +1 -1
- package/dist/utils/BrowserConstants.mjs +213 -205
- package/dist/utils/BrowserConstants.mjs.map +1 -1
- package/dist/utils/BrowserProtocolUtils.d.ts +11 -11
- package/dist/utils/BrowserProtocolUtils.mjs +21 -21
- package/dist/utils/BrowserProtocolUtils.mjs.map +1 -1
- package/dist/utils/BrowserUtils.d.ts +56 -56
- package/dist/utils/BrowserUtils.mjs +125 -125
- package/dist/utils/BrowserUtils.mjs.map +1 -1
- package/lib/msal-browser.cjs +18304 -17929
- package/lib/msal-browser.cjs.map +1 -1
- package/lib/msal-browser.js +18304 -17929
- package/lib/msal-browser.js.map +1 -1
- package/lib/msal-browser.min.js +66 -68
- package/package.json +103 -102
- package/src/app/PublicClientApplication.ts +2 -1
- package/src/cache/BrowserCacheManager.ts +38 -23
- package/src/cache/DatabaseStorage.ts +1 -1
- package/src/cache/TokenCache.ts +34 -29
- package/src/config/Configuration.ts +1 -1
- package/src/controllers/ControllerFactory.ts +3 -5
- package/src/controllers/StandardController.ts +53 -26
- package/src/crypto/CryptoOps.ts +1 -1
- package/src/crypto/SignedHttpRequest.ts +1 -1
- package/src/index.ts +1 -0
- package/src/interaction_client/BaseInteractionClient.ts +2 -2
- package/src/interaction_client/NativeInteractionClient.ts +24 -20
- package/src/interaction_client/PopupClient.ts +1 -1
- package/src/interaction_client/RedirectClient.ts +3 -3
- package/src/interaction_client/SilentAuthCodeClient.ts +1 -1
- package/src/interaction_client/SilentRefreshClient.ts +8 -0
- package/src/interaction_client/StandardInteractionClient.ts +1 -1
- package/src/interaction_handler/SilentHandler.ts +2 -2
- package/src/naa/AuthBridge.ts +3 -2
- package/src/naa/AuthResult.ts +12 -0
- package/src/naa/BridgeProxy.ts +64 -71
- package/src/naa/BridgeRequest.ts +6 -2
- package/src/naa/BridgeRequestEnvelope.ts +1 -13
- package/src/naa/BridgeResponseEnvelope.ts +5 -7
- package/src/naa/BridgeStatusCode.ts +12 -10
- package/src/naa/IBridgeProxy.ts +3 -14
- package/src/naa/{InitializeBridgeResponse.ts → InitContext.ts} +1 -1
- package/src/naa/TokenRequest.ts +1 -2
- package/src/naa/TokenResponse.ts +1 -4
- package/src/naa/mapping/NestedAppAuthAdapter.ts +19 -19
- package/src/operatingcontext/BaseOperatingContext.ts +64 -7
- package/src/packageMetadata.ts +1 -1
- package/src/telemetry/BrowserPerformanceClient.ts +95 -42
- package/src/utils/BrowserConstants.ts +11 -0
- package/dist/naa/AccountRequests.d.ts +0 -10
- package/dist/naa/AccountRequests.d.ts.map +0 -1
- package/dist/naa/InitializeBridgeResponse.d.ts.map +0 -1
- package/src/naa/AccountRequests.ts +0 -16
|
@@ -1,78 +1,78 @@
|
|
|
1
|
-
import { ICrypto, Logger, ExternalTokenResponse } from "@azure/msal-common";
|
|
2
|
-
import { BrowserConfiguration } from "../config/Configuration";
|
|
3
|
-
import { SilentRequest } from "../request/SilentRequest";
|
|
4
|
-
import { BrowserCacheManager } from "./BrowserCacheManager";
|
|
5
|
-
import { ITokenCache } from "./ITokenCache";
|
|
6
|
-
import { AuthenticationResult } from "../response/AuthenticationResult";
|
|
7
|
-
export type LoadTokenOptions = {
|
|
8
|
-
clientInfo?: string;
|
|
9
|
-
expiresOn?: number;
|
|
10
|
-
extendedExpiresOn?: number;
|
|
11
|
-
};
|
|
12
|
-
/**
|
|
13
|
-
* Token cache manager
|
|
14
|
-
*/
|
|
15
|
-
export declare class TokenCache implements ITokenCache {
|
|
16
|
-
isBrowserEnvironment: boolean;
|
|
17
|
-
protected config: BrowserConfiguration;
|
|
18
|
-
private storage;
|
|
19
|
-
private logger;
|
|
20
|
-
private cryptoObj;
|
|
21
|
-
constructor(configuration: BrowserConfiguration, storage: BrowserCacheManager, logger: Logger, cryptoObj: ICrypto);
|
|
22
|
-
/**
|
|
23
|
-
* API to load tokens to msal-browser cache.
|
|
24
|
-
* @param request
|
|
25
|
-
* @param response
|
|
26
|
-
* @param options
|
|
27
|
-
* @returns `AuthenticationResult` for the response that was loaded.
|
|
28
|
-
*/
|
|
29
|
-
loadExternalTokens(request: SilentRequest, response: ExternalTokenResponse, options: LoadTokenOptions): AuthenticationResult;
|
|
30
|
-
/**
|
|
31
|
-
* Helper function to load account to msal-browser cache
|
|
32
|
-
* @param idToken
|
|
33
|
-
* @param environment
|
|
34
|
-
* @param clientInfo
|
|
35
|
-
* @param authorityType
|
|
36
|
-
* @param requestHomeAccountId
|
|
37
|
-
* @returns `AccountEntity`
|
|
38
|
-
*/
|
|
39
|
-
private loadAccount;
|
|
40
|
-
/**
|
|
41
|
-
* Helper function to load id tokens to msal-browser cache
|
|
42
|
-
* @param idToken
|
|
43
|
-
* @param homeAccountId
|
|
44
|
-
* @param environment
|
|
45
|
-
* @param tenantId
|
|
46
|
-
* @returns `IdTokenEntity`
|
|
47
|
-
*/
|
|
48
|
-
private loadIdToken;
|
|
49
|
-
/**
|
|
50
|
-
* Helper function to load access tokens to msal-browser cache
|
|
51
|
-
* @param request
|
|
52
|
-
* @param response
|
|
53
|
-
* @param homeAccountId
|
|
54
|
-
* @param environment
|
|
55
|
-
* @param tenantId
|
|
56
|
-
* @returns `AccessTokenEntity`
|
|
57
|
-
*/
|
|
58
|
-
private loadAccessToken;
|
|
59
|
-
/**
|
|
60
|
-
* Helper function to load refresh tokens to msal-browser cache
|
|
61
|
-
* @param request
|
|
62
|
-
* @param response
|
|
63
|
-
* @param homeAccountId
|
|
64
|
-
* @param environment
|
|
65
|
-
* @returns `RefreshTokenEntity`
|
|
66
|
-
*/
|
|
67
|
-
private loadRefreshToken;
|
|
68
|
-
/**
|
|
69
|
-
* Helper function to generate an `AuthenticationResult` for the result.
|
|
70
|
-
* @param request
|
|
71
|
-
* @param idTokenObj
|
|
72
|
-
* @param cacheRecord
|
|
73
|
-
* @param authority
|
|
74
|
-
* @returns `AuthenticationResult`
|
|
75
|
-
*/
|
|
76
|
-
private generateAuthenticationResult;
|
|
77
|
-
}
|
|
1
|
+
import { ICrypto, Logger, ExternalTokenResponse } from "@azure/msal-common";
|
|
2
|
+
import { BrowserConfiguration } from "../config/Configuration";
|
|
3
|
+
import { SilentRequest } from "../request/SilentRequest";
|
|
4
|
+
import { BrowserCacheManager } from "./BrowserCacheManager";
|
|
5
|
+
import { ITokenCache } from "./ITokenCache";
|
|
6
|
+
import { AuthenticationResult } from "../response/AuthenticationResult";
|
|
7
|
+
export type LoadTokenOptions = {
|
|
8
|
+
clientInfo?: string;
|
|
9
|
+
expiresOn?: number;
|
|
10
|
+
extendedExpiresOn?: number;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Token cache manager
|
|
14
|
+
*/
|
|
15
|
+
export declare class TokenCache implements ITokenCache {
|
|
16
|
+
isBrowserEnvironment: boolean;
|
|
17
|
+
protected config: BrowserConfiguration;
|
|
18
|
+
private storage;
|
|
19
|
+
private logger;
|
|
20
|
+
private cryptoObj;
|
|
21
|
+
constructor(configuration: BrowserConfiguration, storage: BrowserCacheManager, logger: Logger, cryptoObj: ICrypto);
|
|
22
|
+
/**
|
|
23
|
+
* API to load tokens to msal-browser cache.
|
|
24
|
+
* @param request
|
|
25
|
+
* @param response
|
|
26
|
+
* @param options
|
|
27
|
+
* @returns `AuthenticationResult` for the response that was loaded.
|
|
28
|
+
*/
|
|
29
|
+
loadExternalTokens(request: SilentRequest, response: ExternalTokenResponse, options: LoadTokenOptions): AuthenticationResult;
|
|
30
|
+
/**
|
|
31
|
+
* Helper function to load account to msal-browser cache
|
|
32
|
+
* @param idToken
|
|
33
|
+
* @param environment
|
|
34
|
+
* @param clientInfo
|
|
35
|
+
* @param authorityType
|
|
36
|
+
* @param requestHomeAccountId
|
|
37
|
+
* @returns `AccountEntity`
|
|
38
|
+
*/
|
|
39
|
+
private loadAccount;
|
|
40
|
+
/**
|
|
41
|
+
* Helper function to load id tokens to msal-browser cache
|
|
42
|
+
* @param idToken
|
|
43
|
+
* @param homeAccountId
|
|
44
|
+
* @param environment
|
|
45
|
+
* @param tenantId
|
|
46
|
+
* @returns `IdTokenEntity`
|
|
47
|
+
*/
|
|
48
|
+
private loadIdToken;
|
|
49
|
+
/**
|
|
50
|
+
* Helper function to load access tokens to msal-browser cache
|
|
51
|
+
* @param request
|
|
52
|
+
* @param response
|
|
53
|
+
* @param homeAccountId
|
|
54
|
+
* @param environment
|
|
55
|
+
* @param tenantId
|
|
56
|
+
* @returns `AccessTokenEntity`
|
|
57
|
+
*/
|
|
58
|
+
private loadAccessToken;
|
|
59
|
+
/**
|
|
60
|
+
* Helper function to load refresh tokens to msal-browser cache
|
|
61
|
+
* @param request
|
|
62
|
+
* @param response
|
|
63
|
+
* @param homeAccountId
|
|
64
|
+
* @param environment
|
|
65
|
+
* @returns `RefreshTokenEntity`
|
|
66
|
+
*/
|
|
67
|
+
private loadRefreshToken;
|
|
68
|
+
/**
|
|
69
|
+
* Helper function to generate an `AuthenticationResult` for the result.
|
|
70
|
+
* @param request
|
|
71
|
+
* @param idTokenObj
|
|
72
|
+
* @param cacheRecord
|
|
73
|
+
* @param authority
|
|
74
|
+
* @returns `AuthenticationResult`
|
|
75
|
+
*/
|
|
76
|
+
private generateAuthenticationResult;
|
|
77
|
+
}
|
|
78
78
|
//# sourceMappingURL=TokenCache.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenCache.d.ts","sourceRoot":"","sources":["../../src/cache/TokenCache.ts"],"names":[],"mappings":"AAKA,OAAO,EAEH,OAAO,EAEP,MAAM,EAIN,qBAAqB,
|
|
1
|
+
{"version":3,"file":"TokenCache.d.ts","sourceRoot":"","sources":["../../src/cache/TokenCache.ts"],"names":[],"mappings":"AAKA,OAAO,EAEH,OAAO,EAEP,MAAM,EAIN,qBAAqB,EASxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAK5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAGxE,MAAM,MAAM,gBAAgB,GAAG;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF;;GAEG;AACH,qBAAa,UAAW,YAAW,WAAW;IAEnC,oBAAoB,EAAE,OAAO,CAAC;IAErC,SAAS,CAAC,MAAM,EAAE,oBAAoB,CAAC;IAEvC,OAAO,CAAC,OAAO,CAAsB;IAErC,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,CAAC,SAAS,CAAU;gBAGvB,aAAa,EAAE,oBAAoB,EACnC,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,OAAO;IAWtB;;;;;;OAMG;IACH,kBAAkB,CACd,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,EAAE,gBAAgB,GAC1B,oBAAoB;IAmJvB;;;;;;;;OAQG;IACH,OAAO,CAAC,WAAW;IAmDnB;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW;IAyBnB;;;;;;;;OAQG;IACH,OAAO,CAAC,eAAe;IAwDvB;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB;IA+BxB;;;;;;;OAOG;IACH,OAAO,CAAC,4BAA4B;CAwDvC"}
|
|
@@ -1,233 +1,231 @@
|
|
|
1
|
-
/*! @azure/msal-browser v3.
|
|
1
|
+
/*! @azure/msal-browser v3.7.0 2024-01-09 */
|
|
2
2
|
'use strict';
|
|
3
|
-
import { AuthToken, AccountEntity, CacheRecord, Authority, CacheHelpers, ScopeSet, Constants } from '@azure/msal-common';
|
|
3
|
+
import { AuthToken, AccountEntity, CacheRecord, Authority, buildAccountToCache, CacheHelpers, ScopeSet, Constants } from '@azure/msal-common';
|
|
4
4
|
import { createBrowserAuthError } from '../error/BrowserAuthError.mjs';
|
|
5
5
|
import { base64Decode } from '../encode/Base64Decode.mjs';
|
|
6
6
|
import { unableToLoadToken } from '../error/BrowserAuthErrorCodes.mjs';
|
|
7
7
|
|
|
8
|
-
/*
|
|
9
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
10
|
-
* Licensed under the MIT License.
|
|
11
|
-
*/
|
|
12
|
-
/**
|
|
13
|
-
* Token cache manager
|
|
14
|
-
*/
|
|
15
|
-
class TokenCache {
|
|
16
|
-
constructor(configuration, storage, logger, cryptoObj) {
|
|
17
|
-
this.isBrowserEnvironment = typeof window !== "undefined";
|
|
18
|
-
this.config = configuration;
|
|
19
|
-
this.storage = storage;
|
|
20
|
-
this.logger = logger;
|
|
21
|
-
this.cryptoObj = cryptoObj;
|
|
22
|
-
}
|
|
23
|
-
// Move getAllAccounts here and cache utility APIs
|
|
24
|
-
/**
|
|
25
|
-
* API to load tokens to msal-browser cache.
|
|
26
|
-
* @param request
|
|
27
|
-
* @param response
|
|
28
|
-
* @param options
|
|
29
|
-
* @returns `AuthenticationResult` for the response that was loaded.
|
|
30
|
-
*/
|
|
31
|
-
loadExternalTokens(request, response, options) {
|
|
32
|
-
this.logger.info("TokenCache - loadExternalTokens called");
|
|
33
|
-
if (!response.id_token) {
|
|
34
|
-
throw createBrowserAuthError(unableToLoadToken);
|
|
35
|
-
}
|
|
36
|
-
const idTokenClaims = AuthToken.extractTokenClaims(response.id_token, base64Decode);
|
|
37
|
-
let cacheRecord;
|
|
38
|
-
let authority;
|
|
39
|
-
let cacheRecordAccount;
|
|
40
|
-
if (request.account) {
|
|
41
|
-
cacheRecordAccount = AccountEntity.createFromAccountInfo(request.account);
|
|
42
|
-
cacheRecord = new CacheRecord(cacheRecordAccount, this.loadIdToken(response.id_token, cacheRecordAccount.homeAccountId, request.account.environment, request.account.tenantId), this.loadAccessToken(request, response, cacheRecordAccount.homeAccountId, request.account.environment, request.account.tenantId, options), this.loadRefreshToken(request, response, cacheRecordAccount.homeAccountId, request.account.environment));
|
|
43
|
-
}
|
|
44
|
-
else if (request.authority) {
|
|
45
|
-
const authorityUrl = Authority.generateAuthority(request.authority, request.azureCloudOptions);
|
|
46
|
-
const authorityOptions = {
|
|
47
|
-
protocolMode: this.config.auth.protocolMode,
|
|
48
|
-
knownAuthorities: this.config.auth.knownAuthorities,
|
|
49
|
-
cloudDiscoveryMetadata: this.config.auth.cloudDiscoveryMetadata,
|
|
50
|
-
authorityMetadata: this.config.auth.authorityMetadata,
|
|
51
|
-
skipAuthorityMetadataCache: this.config.auth.skipAuthorityMetadataCache,
|
|
52
|
-
};
|
|
53
|
-
authority = new Authority(authorityUrl, this.config.system.networkClient, this.storage, authorityOptions, this.logger);
|
|
54
|
-
// "clientInfo" from options takes precedence over "clientInfo" in response
|
|
55
|
-
if (options.clientInfo) {
|
|
56
|
-
this.logger.trace("TokenCache - homeAccountId from options");
|
|
57
|
-
cacheRecordAccount = this.loadAccount(idTokenClaims, authority, options.clientInfo);
|
|
58
|
-
cacheRecord = new CacheRecord(cacheRecordAccount, this.loadIdToken(response.id_token, cacheRecordAccount.homeAccountId, authority.hostnameAndPort, authority.tenant), this.loadAccessToken(request, response, cacheRecordAccount.homeAccountId, authority.hostnameAndPort, authority.tenant, options), this.loadRefreshToken(request, response, cacheRecordAccount.homeAccountId, authority.hostnameAndPort));
|
|
59
|
-
}
|
|
60
|
-
else if (response.client_info) {
|
|
61
|
-
this.logger.trace("TokenCache - homeAccountId from response");
|
|
62
|
-
cacheRecordAccount = this.loadAccount(idTokenClaims, authority, response.client_info);
|
|
63
|
-
cacheRecord = new CacheRecord(cacheRecordAccount, this.loadIdToken(response.id_token, cacheRecordAccount.homeAccountId, authority.hostnameAndPort, authority.tenant), this.loadAccessToken(request, response, cacheRecordAccount.homeAccountId, authority.hostnameAndPort, authority.tenant, options), this.loadRefreshToken(request, response, cacheRecordAccount.homeAccountId, authority.hostnameAndPort));
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
throw createBrowserAuthError(unableToLoadToken);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
else {
|
|
70
|
-
throw createBrowserAuthError(unableToLoadToken);
|
|
71
|
-
}
|
|
72
|
-
return this.generateAuthenticationResult(request, idTokenClaims, cacheRecord, cacheRecordAccount, authority);
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Helper function to load account to msal-browser cache
|
|
76
|
-
* @param idToken
|
|
77
|
-
* @param environment
|
|
78
|
-
* @param clientInfo
|
|
79
|
-
* @param authorityType
|
|
80
|
-
* @param requestHomeAccountId
|
|
81
|
-
* @returns `AccountEntity`
|
|
82
|
-
*/
|
|
83
|
-
loadAccount(idTokenClaims, authority, clientInfo, requestHomeAccountId) {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
homeAccountId
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
clientInfo,
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
*
|
|
111
|
-
* @param
|
|
112
|
-
* @param
|
|
113
|
-
* @
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
*
|
|
130
|
-
* @param
|
|
131
|
-
* @param
|
|
132
|
-
* @param
|
|
133
|
-
* @
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
const
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
*
|
|
164
|
-
* @param
|
|
165
|
-
* @param
|
|
166
|
-
* @
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
*
|
|
187
|
-
* @param
|
|
188
|
-
* @param
|
|
189
|
-
* @
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
let
|
|
195
|
-
let
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
};
|
|
230
|
-
}
|
|
8
|
+
/*
|
|
9
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
10
|
+
* Licensed under the MIT License.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Token cache manager
|
|
14
|
+
*/
|
|
15
|
+
class TokenCache {
|
|
16
|
+
constructor(configuration, storage, logger, cryptoObj) {
|
|
17
|
+
this.isBrowserEnvironment = typeof window !== "undefined";
|
|
18
|
+
this.config = configuration;
|
|
19
|
+
this.storage = storage;
|
|
20
|
+
this.logger = logger;
|
|
21
|
+
this.cryptoObj = cryptoObj;
|
|
22
|
+
}
|
|
23
|
+
// Move getAllAccounts here and cache utility APIs
|
|
24
|
+
/**
|
|
25
|
+
* API to load tokens to msal-browser cache.
|
|
26
|
+
* @param request
|
|
27
|
+
* @param response
|
|
28
|
+
* @param options
|
|
29
|
+
* @returns `AuthenticationResult` for the response that was loaded.
|
|
30
|
+
*/
|
|
31
|
+
loadExternalTokens(request, response, options) {
|
|
32
|
+
this.logger.info("TokenCache - loadExternalTokens called");
|
|
33
|
+
if (!response.id_token) {
|
|
34
|
+
throw createBrowserAuthError(unableToLoadToken);
|
|
35
|
+
}
|
|
36
|
+
const idTokenClaims = AuthToken.extractTokenClaims(response.id_token, base64Decode);
|
|
37
|
+
let cacheRecord;
|
|
38
|
+
let authority;
|
|
39
|
+
let cacheRecordAccount;
|
|
40
|
+
if (request.account) {
|
|
41
|
+
cacheRecordAccount = AccountEntity.createFromAccountInfo(request.account);
|
|
42
|
+
cacheRecord = new CacheRecord(cacheRecordAccount, this.loadIdToken(response.id_token, cacheRecordAccount.homeAccountId, request.account.environment, request.account.tenantId), this.loadAccessToken(request, response, cacheRecordAccount.homeAccountId, request.account.environment, request.account.tenantId, options), this.loadRefreshToken(request, response, cacheRecordAccount.homeAccountId, request.account.environment));
|
|
43
|
+
}
|
|
44
|
+
else if (request.authority) {
|
|
45
|
+
const authorityUrl = Authority.generateAuthority(request.authority, request.azureCloudOptions);
|
|
46
|
+
const authorityOptions = {
|
|
47
|
+
protocolMode: this.config.auth.protocolMode,
|
|
48
|
+
knownAuthorities: this.config.auth.knownAuthorities,
|
|
49
|
+
cloudDiscoveryMetadata: this.config.auth.cloudDiscoveryMetadata,
|
|
50
|
+
authorityMetadata: this.config.auth.authorityMetadata,
|
|
51
|
+
skipAuthorityMetadataCache: this.config.auth.skipAuthorityMetadataCache,
|
|
52
|
+
};
|
|
53
|
+
authority = new Authority(authorityUrl, this.config.system.networkClient, this.storage, authorityOptions, this.logger);
|
|
54
|
+
// "clientInfo" from options takes precedence over "clientInfo" in response
|
|
55
|
+
if (options.clientInfo) {
|
|
56
|
+
this.logger.trace("TokenCache - homeAccountId from options");
|
|
57
|
+
cacheRecordAccount = this.loadAccount(idTokenClaims, authority, options.clientInfo);
|
|
58
|
+
cacheRecord = new CacheRecord(cacheRecordAccount, this.loadIdToken(response.id_token, cacheRecordAccount.homeAccountId, authority.hostnameAndPort, authority.tenant), this.loadAccessToken(request, response, cacheRecordAccount.homeAccountId, authority.hostnameAndPort, authority.tenant, options), this.loadRefreshToken(request, response, cacheRecordAccount.homeAccountId, authority.hostnameAndPort));
|
|
59
|
+
}
|
|
60
|
+
else if (response.client_info) {
|
|
61
|
+
this.logger.trace("TokenCache - homeAccountId from response");
|
|
62
|
+
cacheRecordAccount = this.loadAccount(idTokenClaims, authority, response.client_info);
|
|
63
|
+
cacheRecord = new CacheRecord(cacheRecordAccount, this.loadIdToken(response.id_token, cacheRecordAccount.homeAccountId, authority.hostnameAndPort, authority.tenant), this.loadAccessToken(request, response, cacheRecordAccount.homeAccountId, authority.hostnameAndPort, authority.tenant, options), this.loadRefreshToken(request, response, cacheRecordAccount.homeAccountId, authority.hostnameAndPort));
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
throw createBrowserAuthError(unableToLoadToken);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
throw createBrowserAuthError(unableToLoadToken);
|
|
71
|
+
}
|
|
72
|
+
return this.generateAuthenticationResult(request, idTokenClaims, cacheRecord, cacheRecordAccount, authority);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Helper function to load account to msal-browser cache
|
|
76
|
+
* @param idToken
|
|
77
|
+
* @param environment
|
|
78
|
+
* @param clientInfo
|
|
79
|
+
* @param authorityType
|
|
80
|
+
* @param requestHomeAccountId
|
|
81
|
+
* @returns `AccountEntity`
|
|
82
|
+
*/
|
|
83
|
+
loadAccount(idTokenClaims, authority, clientInfo, requestHomeAccountId) {
|
|
84
|
+
if (this.isBrowserEnvironment) {
|
|
85
|
+
this.logger.verbose("TokenCache - loading account");
|
|
86
|
+
let homeAccountId;
|
|
87
|
+
if (requestHomeAccountId) {
|
|
88
|
+
homeAccountId = requestHomeAccountId;
|
|
89
|
+
}
|
|
90
|
+
else if (authority.authorityType !== undefined && clientInfo) {
|
|
91
|
+
homeAccountId = AccountEntity.generateHomeAccountId(clientInfo, authority.authorityType, this.logger, this.cryptoObj, idTokenClaims);
|
|
92
|
+
}
|
|
93
|
+
if (!homeAccountId) {
|
|
94
|
+
throw createBrowserAuthError(unableToLoadToken);
|
|
95
|
+
}
|
|
96
|
+
const claimsTenantId = idTokenClaims.tid;
|
|
97
|
+
const cachedAccount = buildAccountToCache(this.storage, authority, homeAccountId, idTokenClaims, base64Decode, clientInfo, authority.hostnameAndPort, claimsTenantId, undefined, // authCodePayload
|
|
98
|
+
undefined, // nativeAccountId
|
|
99
|
+
this.logger);
|
|
100
|
+
this.storage.setAccount(cachedAccount);
|
|
101
|
+
return cachedAccount;
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
throw createBrowserAuthError(unableToLoadToken);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Helper function to load id tokens to msal-browser cache
|
|
109
|
+
* @param idToken
|
|
110
|
+
* @param homeAccountId
|
|
111
|
+
* @param environment
|
|
112
|
+
* @param tenantId
|
|
113
|
+
* @returns `IdTokenEntity`
|
|
114
|
+
*/
|
|
115
|
+
loadIdToken(idToken, homeAccountId, environment, tenantId) {
|
|
116
|
+
const idTokenEntity = CacheHelpers.createIdTokenEntity(homeAccountId, environment, idToken, this.config.auth.clientId, tenantId);
|
|
117
|
+
if (this.isBrowserEnvironment) {
|
|
118
|
+
this.logger.verbose("TokenCache - loading id token");
|
|
119
|
+
this.storage.setIdTokenCredential(idTokenEntity);
|
|
120
|
+
return idTokenEntity;
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
throw createBrowserAuthError(unableToLoadToken);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Helper function to load access tokens to msal-browser cache
|
|
128
|
+
* @param request
|
|
129
|
+
* @param response
|
|
130
|
+
* @param homeAccountId
|
|
131
|
+
* @param environment
|
|
132
|
+
* @param tenantId
|
|
133
|
+
* @returns `AccessTokenEntity`
|
|
134
|
+
*/
|
|
135
|
+
loadAccessToken(request, response, homeAccountId, environment, tenantId, options) {
|
|
136
|
+
if (!response.access_token) {
|
|
137
|
+
this.logger.verbose("TokenCache - No access token provided for caching");
|
|
138
|
+
return null;
|
|
139
|
+
}
|
|
140
|
+
if (!response.expires_in) {
|
|
141
|
+
throw createBrowserAuthError(unableToLoadToken);
|
|
142
|
+
}
|
|
143
|
+
if (!options.extendedExpiresOn) {
|
|
144
|
+
throw createBrowserAuthError(unableToLoadToken);
|
|
145
|
+
}
|
|
146
|
+
const scopes = new ScopeSet(request.scopes).printScopes();
|
|
147
|
+
const expiresOn = options.expiresOn ||
|
|
148
|
+
response.expires_in + new Date().getTime() / 1000;
|
|
149
|
+
const extendedExpiresOn = options.extendedExpiresOn;
|
|
150
|
+
const accessTokenEntity = CacheHelpers.createAccessTokenEntity(homeAccountId, environment, response.access_token, this.config.auth.clientId, tenantId, scopes, expiresOn, extendedExpiresOn, base64Decode);
|
|
151
|
+
if (this.isBrowserEnvironment) {
|
|
152
|
+
this.logger.verbose("TokenCache - loading access token");
|
|
153
|
+
this.storage.setAccessTokenCredential(accessTokenEntity);
|
|
154
|
+
return accessTokenEntity;
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
throw createBrowserAuthError(unableToLoadToken);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Helper function to load refresh tokens to msal-browser cache
|
|
162
|
+
* @param request
|
|
163
|
+
* @param response
|
|
164
|
+
* @param homeAccountId
|
|
165
|
+
* @param environment
|
|
166
|
+
* @returns `RefreshTokenEntity`
|
|
167
|
+
*/
|
|
168
|
+
loadRefreshToken(request, response, homeAccountId, environment) {
|
|
169
|
+
if (!response.refresh_token) {
|
|
170
|
+
this.logger.verbose("TokenCache - No refresh token provided for caching");
|
|
171
|
+
return null;
|
|
172
|
+
}
|
|
173
|
+
const refreshTokenEntity = CacheHelpers.createRefreshTokenEntity(homeAccountId, environment, response.refresh_token, this.config.auth.clientId);
|
|
174
|
+
if (this.isBrowserEnvironment) {
|
|
175
|
+
this.logger.verbose("TokenCache - loading refresh token");
|
|
176
|
+
this.storage.setRefreshTokenCredential(refreshTokenEntity);
|
|
177
|
+
return refreshTokenEntity;
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
throw createBrowserAuthError(unableToLoadToken);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Helper function to generate an `AuthenticationResult` for the result.
|
|
185
|
+
* @param request
|
|
186
|
+
* @param idTokenObj
|
|
187
|
+
* @param cacheRecord
|
|
188
|
+
* @param authority
|
|
189
|
+
* @returns `AuthenticationResult`
|
|
190
|
+
*/
|
|
191
|
+
generateAuthenticationResult(request, idTokenClaims, cacheRecord, accountEntity, authority) {
|
|
192
|
+
let accessToken = Constants.EMPTY_STRING;
|
|
193
|
+
let responseScopes = [];
|
|
194
|
+
let expiresOn = null;
|
|
195
|
+
let extExpiresOn;
|
|
196
|
+
if (cacheRecord?.accessToken) {
|
|
197
|
+
accessToken = cacheRecord.accessToken.secret;
|
|
198
|
+
responseScopes = ScopeSet.fromString(cacheRecord.accessToken.target).asArray();
|
|
199
|
+
expiresOn = new Date(Number(cacheRecord.accessToken.expiresOn) * 1000);
|
|
200
|
+
extExpiresOn = new Date(Number(cacheRecord.accessToken.extendedExpiresOn) * 1000);
|
|
201
|
+
}
|
|
202
|
+
const uid = idTokenClaims.oid || idTokenClaims.sub || Constants.EMPTY_STRING;
|
|
203
|
+
const tid = idTokenClaims.tid || Constants.EMPTY_STRING;
|
|
204
|
+
return {
|
|
205
|
+
authority: authority
|
|
206
|
+
? authority.canonicalAuthority
|
|
207
|
+
: Constants.EMPTY_STRING,
|
|
208
|
+
uniqueId: uid,
|
|
209
|
+
tenantId: tid,
|
|
210
|
+
scopes: responseScopes,
|
|
211
|
+
account: accountEntity.getAccountInfo(),
|
|
212
|
+
idToken: cacheRecord.idToken?.secret || "",
|
|
213
|
+
idTokenClaims: idTokenClaims || {},
|
|
214
|
+
accessToken: accessToken,
|
|
215
|
+
fromCache: true,
|
|
216
|
+
expiresOn: expiresOn,
|
|
217
|
+
correlationId: request.correlationId || Constants.EMPTY_STRING,
|
|
218
|
+
requestId: Constants.EMPTY_STRING,
|
|
219
|
+
extExpiresOn: extExpiresOn,
|
|
220
|
+
familyId: Constants.EMPTY_STRING,
|
|
221
|
+
tokenType: cacheRecord?.accessToken?.tokenType || Constants.EMPTY_STRING,
|
|
222
|
+
state: Constants.EMPTY_STRING,
|
|
223
|
+
cloudGraphHostName: accountEntity.cloudGraphHostName || Constants.EMPTY_STRING,
|
|
224
|
+
msGraphHost: accountEntity.msGraphHost || Constants.EMPTY_STRING,
|
|
225
|
+
code: undefined,
|
|
226
|
+
fromNativeBroker: false,
|
|
227
|
+
};
|
|
228
|
+
}
|
|
231
229
|
}
|
|
232
230
|
|
|
233
231
|
export { TokenCache };
|