@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
package/package.json
CHANGED
|
@@ -1,105 +1,106 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
"name": "@azure/msal-browser",
|
|
3
|
+
"author": {
|
|
4
|
+
"name": "Microsoft",
|
|
5
|
+
"email": "nugetaad@microsoft.com",
|
|
6
|
+
"url": "https://www.microsoft.com"
|
|
7
|
+
},
|
|
8
|
+
"license": "MIT",
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "https://github.com/AzureAD/microsoft-authentication-library-for-js.git"
|
|
12
|
+
},
|
|
13
|
+
"version": "3.7.0",
|
|
14
|
+
"description": "Microsoft Authentication Library for js",
|
|
15
|
+
"keywords": [
|
|
16
|
+
"implicit",
|
|
17
|
+
"authorization code",
|
|
18
|
+
"PKCE",
|
|
19
|
+
"js",
|
|
20
|
+
"AAD",
|
|
21
|
+
"msal",
|
|
22
|
+
"oauth"
|
|
23
|
+
],
|
|
24
|
+
"type": "module",
|
|
25
|
+
"sideEffects": false,
|
|
26
|
+
"module": "./dist/index.mjs",
|
|
27
|
+
"types": "./dist/index.d.ts",
|
|
28
|
+
"exports": {
|
|
29
|
+
".": {
|
|
30
|
+
"types": "./dist/index.d.ts",
|
|
31
|
+
"module": "./dist/index.mjs",
|
|
32
|
+
"import": "./dist/index.mjs",
|
|
33
|
+
"require": "./lib/msal-browser.cjs",
|
|
34
|
+
"default": "./dist/index.mjs"
|
|
7
35
|
},
|
|
8
|
-
"
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
"
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
"
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
"
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
"
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
"
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
"@babel/plugin-proposal-object-rest-spread": "^7.6.2",
|
|
79
|
-
"@babel/preset-env": "^7.7.1",
|
|
80
|
-
"@babel/preset-typescript": "^7.7.2",
|
|
81
|
-
"@rollup/plugin-node-resolve": "^15.0.1",
|
|
82
|
-
"@rollup/plugin-terser": "^0.4.0",
|
|
83
|
-
"@rollup/plugin-typescript": "^11.0.0",
|
|
84
|
-
"@types/jest": "^29.5.0",
|
|
85
|
-
"@types/node": "^20.3.1",
|
|
86
|
-
"@types/sinon": "^7.5.0",
|
|
87
|
-
"dotenv": "^8.2.0",
|
|
88
|
-
"eslint-config-msal": "^0.0.0",
|
|
89
|
-
"fake-indexeddb": "^3.1.3",
|
|
90
|
-
"jest": "^29.5.0",
|
|
91
|
-
"jest-environment-jsdom": "^29.5.0",
|
|
92
|
-
"prettier": "2.8.7",
|
|
93
|
-
"rimraf": "^3.0.0",
|
|
94
|
-
"rollup": "^3.14.0",
|
|
95
|
-
"shx": "^0.3.2",
|
|
96
|
-
"sinon": "^7.5.0",
|
|
97
|
-
"ssri": "^8.0.1",
|
|
98
|
-
"ts-jest": "^29.1.0",
|
|
99
|
-
"tslib": "^1.10.0",
|
|
100
|
-
"typescript": "^4.9.5"
|
|
101
|
-
},
|
|
102
|
-
"dependencies": {
|
|
103
|
-
"@azure/msal-common": "14.4.1-beta.1"
|
|
104
|
-
}
|
|
36
|
+
"./package.json": "./package.json"
|
|
37
|
+
},
|
|
38
|
+
"engines": {
|
|
39
|
+
"node": ">=0.8.0"
|
|
40
|
+
},
|
|
41
|
+
"beachball": {
|
|
42
|
+
"disallowedChangeTypes": [
|
|
43
|
+
"major"
|
|
44
|
+
]
|
|
45
|
+
},
|
|
46
|
+
"directories": {
|
|
47
|
+
"test": "test"
|
|
48
|
+
},
|
|
49
|
+
"files": [
|
|
50
|
+
"dist",
|
|
51
|
+
"lib/msal-browser.js",
|
|
52
|
+
"lib/msal-browser.js.map",
|
|
53
|
+
"lib/msal-browser.cjs",
|
|
54
|
+
"lib/msal-browser.cjs.map",
|
|
55
|
+
"lib/msal-browser.min.js",
|
|
56
|
+
"src"
|
|
57
|
+
],
|
|
58
|
+
"scripts": {
|
|
59
|
+
"clean": "shx rm -rf dist lib",
|
|
60
|
+
"clean:coverage": "rimraf ../../.nyc_output/*",
|
|
61
|
+
"lint": "eslint src --ext .ts",
|
|
62
|
+
"lint:fix": "npm run lint -- --fix",
|
|
63
|
+
"test": "jest",
|
|
64
|
+
"test:coverage": "jest --coverage",
|
|
65
|
+
"test:coverage:only": "npm run clean:coverage && npm run test:coverage",
|
|
66
|
+
"build:all": "cd ../.. && npm run build --workspace=@azure/msal-common --workspace=@azure/msal-browser",
|
|
67
|
+
"build:modules": "rollup -c --strictDeprecations --bundleConfigAsCjs",
|
|
68
|
+
"build:modules:watch": "rollup -cw --bundleConfigAsCjs",
|
|
69
|
+
"build": "npm run clean && npm run build:modules",
|
|
70
|
+
"prepack": "npm run build:all",
|
|
71
|
+
"format:check": "npx prettier --ignore-path .gitignore --check src test",
|
|
72
|
+
"format:fix": "npx prettier --ignore-path .gitignore --write src test"
|
|
73
|
+
},
|
|
74
|
+
"devDependencies": {
|
|
75
|
+
"@azure/storage-blob": "^12.2.1",
|
|
76
|
+
"@babel/core": "^7.7.2",
|
|
77
|
+
"@babel/plugin-proposal-class-properties": "^7.7.0",
|
|
78
|
+
"@babel/plugin-proposal-object-rest-spread": "^7.6.2",
|
|
79
|
+
"@babel/preset-env": "^7.7.1",
|
|
80
|
+
"@babel/preset-typescript": "^7.7.2",
|
|
81
|
+
"@rollup/plugin-node-resolve": "^15.0.1",
|
|
82
|
+
"@rollup/plugin-terser": "^0.4.0",
|
|
83
|
+
"@rollup/plugin-typescript": "^11.0.0",
|
|
84
|
+
"@types/jest": "^29.5.0",
|
|
85
|
+
"@types/node": "^20.3.1",
|
|
86
|
+
"@types/sinon": "^7.5.0",
|
|
87
|
+
"dotenv": "^8.2.0",
|
|
88
|
+
"eslint-config-msal": "^0.0.0",
|
|
89
|
+
"msal-test-utils": "^0.0.1",
|
|
90
|
+
"fake-indexeddb": "^3.1.3",
|
|
91
|
+
"jest": "^29.5.0",
|
|
92
|
+
"jest-environment-jsdom": "^29.5.0",
|
|
93
|
+
"prettier": "2.8.7",
|
|
94
|
+
"rimraf": "^3.0.0",
|
|
95
|
+
"rollup": "^3.14.0",
|
|
96
|
+
"shx": "^0.3.2",
|
|
97
|
+
"sinon": "^7.5.0",
|
|
98
|
+
"ssri": "^8.0.1",
|
|
99
|
+
"ts-jest": "^29.1.0",
|
|
100
|
+
"tslib": "^1.10.0",
|
|
101
|
+
"typescript": "^4.9.5"
|
|
102
|
+
},
|
|
103
|
+
"dependencies": {
|
|
104
|
+
"@azure/msal-common": "14.6.0"
|
|
105
|
+
}
|
|
105
106
|
}
|
|
@@ -27,6 +27,7 @@ import { StandardOperatingContext } from "../operatingcontext/StandardOperatingC
|
|
|
27
27
|
import { AuthenticationResult } from "../response/AuthenticationResult";
|
|
28
28
|
import { EventCallbackFunction } from "../event/EventMessage";
|
|
29
29
|
import { ClearCacheRequest } from "../request/ClearCacheRequest";
|
|
30
|
+
import { EndSessionPopupRequest } from "../request/EndSessionPopupRequest";
|
|
30
31
|
|
|
31
32
|
/**
|
|
32
33
|
* The PublicClientApplication class is the object exposed by the library to perform authentication and authorization functions in Single Page Applications
|
|
@@ -306,7 +307,7 @@ export class PublicClientApplication implements IPublicClientApplication {
|
|
|
306
307
|
* Clears local cache for the current user then opens a popup window prompting the user to sign-out of the server
|
|
307
308
|
* @param logoutRequest
|
|
308
309
|
*/
|
|
309
|
-
logoutPopup(logoutRequest?:
|
|
310
|
+
logoutPopup(logoutRequest?: EndSessionPopupRequest): Promise<void> {
|
|
310
311
|
return this.controller.logoutPopup(logoutRequest);
|
|
311
312
|
}
|
|
312
313
|
|
|
@@ -394,15 +394,31 @@ export class BrowserCacheManager extends CacheManager {
|
|
|
394
394
|
* fetch the account entity from the platform cache
|
|
395
395
|
* @param accountKey
|
|
396
396
|
*/
|
|
397
|
-
getAccount(accountKey: string): AccountEntity | null {
|
|
397
|
+
getAccount(accountKey: string, logger?: Logger): AccountEntity | null {
|
|
398
398
|
this.logger.trace("BrowserCacheManager.getAccount called");
|
|
399
|
-
const
|
|
400
|
-
|
|
399
|
+
const accountEntity = this.getCachedAccountEntity(accountKey);
|
|
400
|
+
|
|
401
|
+
return this.updateOutdatedCachedAccount(
|
|
402
|
+
accountKey,
|
|
403
|
+
accountEntity,
|
|
404
|
+
logger
|
|
405
|
+
);
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
/**
|
|
409
|
+
* Reads account from cache, deserializes it into an account entity and returns it.
|
|
410
|
+
* If account is not found from the key, returns null and removes key from map.
|
|
411
|
+
* @param accountKey
|
|
412
|
+
* @returns
|
|
413
|
+
*/
|
|
414
|
+
getCachedAccountEntity(accountKey: string): AccountEntity | null {
|
|
415
|
+
const serializedAccount = this.getItem(accountKey);
|
|
416
|
+
if (!serializedAccount) {
|
|
401
417
|
this.removeAccountKeyFromMap(accountKey);
|
|
402
418
|
return null;
|
|
403
419
|
}
|
|
404
420
|
|
|
405
|
-
const parsedAccount = this.validateAndParseJson(
|
|
421
|
+
const parsedAccount = this.validateAndParseJson(serializedAccount);
|
|
406
422
|
if (!parsedAccount || !AccountEntity.isAccountEntity(parsedAccount)) {
|
|
407
423
|
this.removeAccountKeyFromMap(accountKey);
|
|
408
424
|
return null;
|
|
@@ -505,6 +521,15 @@ export class BrowserCacheManager extends CacheManager {
|
|
|
505
521
|
this.removeAccountKeyFromMap(key);
|
|
506
522
|
}
|
|
507
523
|
|
|
524
|
+
/**
|
|
525
|
+
* Remove account entity from the platform cache if it's outdated
|
|
526
|
+
* @param accountKey
|
|
527
|
+
*/
|
|
528
|
+
removeOutdatedAccount(accountKey: string): void {
|
|
529
|
+
this.removeItem(accountKey);
|
|
530
|
+
this.removeAccountKeyFromMap(accountKey);
|
|
531
|
+
}
|
|
532
|
+
|
|
508
533
|
/**
|
|
509
534
|
* Removes given idToken from the cache and from the key map
|
|
510
535
|
* @param key
|
|
@@ -841,10 +866,7 @@ export class BrowserCacheManager extends CacheManager {
|
|
|
841
866
|
const parsedMetadata = this.validateAndParseJson(value);
|
|
842
867
|
if (
|
|
843
868
|
!parsedMetadata ||
|
|
844
|
-
!
|
|
845
|
-
appMetadataKey,
|
|
846
|
-
parsedMetadata
|
|
847
|
-
)
|
|
869
|
+
!CacheHelpers.isAppMetadataEntity(appMetadataKey, parsedMetadata)
|
|
848
870
|
) {
|
|
849
871
|
this.logger.trace(
|
|
850
872
|
"BrowserCacheManager.getAppMetadata: called, no cache hit"
|
|
@@ -853,7 +875,7 @@ export class BrowserCacheManager extends CacheManager {
|
|
|
853
875
|
}
|
|
854
876
|
|
|
855
877
|
this.logger.trace("BrowserCacheManager.getAppMetadata: cache hit");
|
|
856
|
-
return
|
|
878
|
+
return parsedMetadata as AppMetadataEntity;
|
|
857
879
|
}
|
|
858
880
|
|
|
859
881
|
/**
|
|
@@ -862,7 +884,7 @@ export class BrowserCacheManager extends CacheManager {
|
|
|
862
884
|
*/
|
|
863
885
|
setAppMetadata(appMetadata: AppMetadataEntity): void {
|
|
864
886
|
this.logger.trace("BrowserCacheManager.setAppMetadata called");
|
|
865
|
-
const appMetadataKey =
|
|
887
|
+
const appMetadataKey = CacheHelpers.generateAppMetadataKey(appMetadata);
|
|
866
888
|
this.setItem(appMetadataKey, JSON.stringify(appMetadata));
|
|
867
889
|
}
|
|
868
890
|
|
|
@@ -925,18 +947,12 @@ export class BrowserCacheManager extends CacheManager {
|
|
|
925
947
|
const parsedMetadata = this.validateAndParseJson(value);
|
|
926
948
|
if (
|
|
927
949
|
parsedMetadata &&
|
|
928
|
-
|
|
929
|
-
key,
|
|
930
|
-
parsedMetadata
|
|
931
|
-
)
|
|
950
|
+
CacheHelpers.isAuthorityMetadataEntity(key, parsedMetadata)
|
|
932
951
|
) {
|
|
933
952
|
this.logger.trace(
|
|
934
953
|
"BrowserCacheManager.getAuthorityMetadata: cache hit"
|
|
935
954
|
);
|
|
936
|
-
return
|
|
937
|
-
new AuthorityMetadataEntity(),
|
|
938
|
-
parsedMetadata
|
|
939
|
-
);
|
|
955
|
+
return parsedMetadata as AuthorityMetadataEntity;
|
|
940
956
|
}
|
|
941
957
|
return null;
|
|
942
958
|
}
|
|
@@ -1034,6 +1050,7 @@ export class BrowserCacheManager extends CacheManager {
|
|
|
1034
1050
|
return this.getAccountInfoFilteredBy({
|
|
1035
1051
|
homeAccountId: activeAccountValueObj.homeAccountId,
|
|
1036
1052
|
localAccountId: activeAccountValueObj.localAccountId,
|
|
1053
|
+
tenantId: activeAccountValueObj.tenantId,
|
|
1037
1054
|
});
|
|
1038
1055
|
}
|
|
1039
1056
|
this.logger.trace(
|
|
@@ -1058,6 +1075,7 @@ export class BrowserCacheManager extends CacheManager {
|
|
|
1058
1075
|
const activeAccountValue: ActiveAccountFilters = {
|
|
1059
1076
|
homeAccountId: account.homeAccountId,
|
|
1060
1077
|
localAccountId: account.localAccountId,
|
|
1078
|
+
tenantId: account.tenantId,
|
|
1061
1079
|
};
|
|
1062
1080
|
this.browserStorage.setItem(
|
|
1063
1081
|
activeAccountKey,
|
|
@@ -1092,7 +1110,7 @@ export class BrowserCacheManager extends CacheManager {
|
|
|
1092
1110
|
const parsedThrottlingCache = this.validateAndParseJson(value);
|
|
1093
1111
|
if (
|
|
1094
1112
|
!parsedThrottlingCache ||
|
|
1095
|
-
!
|
|
1113
|
+
!CacheHelpers.isThrottlingEntity(
|
|
1096
1114
|
throttlingCacheKey,
|
|
1097
1115
|
parsedThrottlingCache
|
|
1098
1116
|
)
|
|
@@ -1104,10 +1122,7 @@ export class BrowserCacheManager extends CacheManager {
|
|
|
1104
1122
|
}
|
|
1105
1123
|
|
|
1106
1124
|
this.logger.trace("BrowserCacheManager.getThrottlingCache: cache hit");
|
|
1107
|
-
return
|
|
1108
|
-
new ThrottlingEntity(),
|
|
1109
|
-
parsedThrottlingCache
|
|
1110
|
-
);
|
|
1125
|
+
return parsedThrottlingCache as ThrottlingEntity;
|
|
1111
1126
|
}
|
|
1112
1127
|
|
|
1113
1128
|
/**
|
package/src/cache/TokenCache.ts
CHANGED
|
@@ -19,6 +19,7 @@ import {
|
|
|
19
19
|
CacheRecord,
|
|
20
20
|
TokenClaims,
|
|
21
21
|
CacheHelpers,
|
|
22
|
+
buildAccountToCache,
|
|
22
23
|
} from "@azure/msal-common";
|
|
23
24
|
import { BrowserConfiguration } from "../config/Configuration";
|
|
24
25
|
import { SilentRequest } from "../request/SilentRequest";
|
|
@@ -240,40 +241,44 @@ export class TokenCache implements ITokenCache {
|
|
|
240
241
|
clientInfo?: string,
|
|
241
242
|
requestHomeAccountId?: string
|
|
242
243
|
): AccountEntity {
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
homeAccountId
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
244
|
+
if (this.isBrowserEnvironment) {
|
|
245
|
+
this.logger.verbose("TokenCache - loading account");
|
|
246
|
+
let homeAccountId;
|
|
247
|
+
if (requestHomeAccountId) {
|
|
248
|
+
homeAccountId = requestHomeAccountId;
|
|
249
|
+
} else if (authority.authorityType !== undefined && clientInfo) {
|
|
250
|
+
homeAccountId = AccountEntity.generateHomeAccountId(
|
|
251
|
+
clientInfo,
|
|
252
|
+
authority.authorityType,
|
|
253
|
+
this.logger,
|
|
254
|
+
this.cryptoObj,
|
|
255
|
+
idTokenClaims
|
|
256
|
+
);
|
|
257
|
+
}
|
|
255
258
|
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
259
|
+
if (!homeAccountId) {
|
|
260
|
+
throw createBrowserAuthError(
|
|
261
|
+
BrowserAuthErrorCodes.unableToLoadToken
|
|
262
|
+
);
|
|
263
|
+
}
|
|
264
|
+
const claimsTenantId = idTokenClaims.tid;
|
|
261
265
|
|
|
262
|
-
|
|
263
|
-
|
|
266
|
+
const cachedAccount = buildAccountToCache(
|
|
267
|
+
this.storage,
|
|
268
|
+
authority,
|
|
264
269
|
homeAccountId,
|
|
265
|
-
idTokenClaims
|
|
270
|
+
idTokenClaims,
|
|
271
|
+
base64Decode,
|
|
266
272
|
clientInfo,
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
this.logger.verbose("TokenCache - loading account");
|
|
273
|
+
authority.hostnameAndPort,
|
|
274
|
+
claimsTenantId,
|
|
275
|
+
undefined, // authCodePayload
|
|
276
|
+
undefined, // nativeAccountId
|
|
277
|
+
this.logger
|
|
278
|
+
);
|
|
274
279
|
|
|
275
|
-
this.storage.setAccount(
|
|
276
|
-
return
|
|
280
|
+
this.storage.setAccount(cachedAccount);
|
|
281
|
+
return cachedAccount;
|
|
277
282
|
} else {
|
|
278
283
|
throw createBrowserAuthError(
|
|
279
284
|
BrowserAuthErrorCodes.unableToLoadToken
|
|
@@ -33,7 +33,7 @@ import { FetchClient } from "../network/FetchClient";
|
|
|
33
33
|
|
|
34
34
|
// Default timeout for popup windows and iframes in milliseconds
|
|
35
35
|
export const DEFAULT_POPUP_TIMEOUT_MS = 60000;
|
|
36
|
-
export const DEFAULT_IFRAME_TIMEOUT_MS =
|
|
36
|
+
export const DEFAULT_IFRAME_TIMEOUT_MS = 10000;
|
|
37
37
|
export const DEFAULT_REDIRECT_TIMEOUT_MS = 30000;
|
|
38
38
|
export const DEFAULT_NATIVE_BROKER_HANDSHAKE_TIMEOUT_MS = 2000;
|
|
39
39
|
|
|
@@ -16,7 +16,7 @@ export async function createV3Controller(
|
|
|
16
16
|
await standard.initialize();
|
|
17
17
|
|
|
18
18
|
const controller = await import("./StandardController");
|
|
19
|
-
return
|
|
19
|
+
return controller.StandardController.createController(standard);
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
export async function createController(
|
|
@@ -34,12 +34,10 @@ export async function createController(
|
|
|
34
34
|
teamsApp.getConfig().auth.supportsNestedAppAuth
|
|
35
35
|
) {
|
|
36
36
|
const controller = await import("./NestedAppAuthController");
|
|
37
|
-
return
|
|
38
|
-
teamsApp
|
|
39
|
-
);
|
|
37
|
+
return controller.NestedAppAuthController.createController(teamsApp);
|
|
40
38
|
} else if (standard.isAvailable()) {
|
|
41
39
|
const controller = await import("./StandardController");
|
|
42
|
-
return
|
|
40
|
+
return controller.StandardController.createController(standard);
|
|
43
41
|
} else {
|
|
44
42
|
// Since neither of the actual operating contexts are available keep the UnknownOperatingContextController
|
|
45
43
|
return null;
|
|
@@ -43,6 +43,7 @@ import {
|
|
|
43
43
|
CacheLookupPolicy,
|
|
44
44
|
DEFAULT_REQUEST,
|
|
45
45
|
BrowserConstants,
|
|
46
|
+
iFrameRenewalPolicies,
|
|
46
47
|
} from "../utils/BrowserConstants";
|
|
47
48
|
import * as BrowserUtils from "../utils/BrowserUtils";
|
|
48
49
|
import { RedirectRequest } from "../request/RedirectRequest";
|
|
@@ -923,10 +924,10 @@ export class StandardController implements IController {
|
|
|
923
924
|
);
|
|
924
925
|
atbcMeasurement.discard();
|
|
925
926
|
}
|
|
926
|
-
return response;
|
|
927
|
+
return await response;
|
|
927
928
|
} else if (request.nativeAccountId) {
|
|
928
929
|
if (this.canUseNative(request, request.nativeAccountId)) {
|
|
929
|
-
return this.acquireTokenNative(
|
|
930
|
+
return await this.acquireTokenNative(
|
|
930
931
|
{
|
|
931
932
|
...request,
|
|
932
933
|
correlationId,
|
|
@@ -1549,7 +1550,7 @@ export class StandardController implements IController {
|
|
|
1549
1550
|
): string {
|
|
1550
1551
|
const account =
|
|
1551
1552
|
request.account ||
|
|
1552
|
-
this.
|
|
1553
|
+
this.getAccount({
|
|
1553
1554
|
loginHint: request.loginHint,
|
|
1554
1555
|
sid: request.sid,
|
|
1555
1556
|
}) ||
|
|
@@ -2078,31 +2079,17 @@ export class StandardController implements IController {
|
|
|
2078
2079
|
silentRequest.correlationId
|
|
2079
2080
|
)(silentRequest, cacheLookupPolicy).catch(
|
|
2080
2081
|
(refreshTokenError: AuthError) => {
|
|
2081
|
-
const
|
|
2082
|
-
(
|
|
2083
|
-
refreshTokenError
|
|
2084
|
-
|
|
2085
|
-
|
|
2086
|
-
|
|
2087
|
-
|
|
2088
|
-
|
|
2089
|
-
ClientAuthErrorCodes.tokenRefreshRequired)) ||
|
|
2090
|
-
refreshTokenError.errorCode ===
|
|
2091
|
-
InteractionRequiredAuthErrorCodes.noTokensFound ||
|
|
2092
|
-
refreshTokenError.errorCode ===
|
|
2093
|
-
InteractionRequiredAuthErrorCodes.refreshTokenExpired;
|
|
2094
|
-
|
|
2095
|
-
const tryIframeRenewal =
|
|
2096
|
-
cacheLookupPolicy ===
|
|
2097
|
-
CacheLookupPolicy.Default ||
|
|
2098
|
-
cacheLookupPolicy === CacheLookupPolicy.Skip ||
|
|
2099
|
-
cacheLookupPolicy ===
|
|
2100
|
-
CacheLookupPolicy.RefreshTokenAndNetwork;
|
|
2101
|
-
|
|
2102
|
-
if (isSilentlyResolvable && tryIframeRenewal) {
|
|
2082
|
+
const shouldTryToResolveSilently =
|
|
2083
|
+
checkIfRefreshTokenErrorCanBeResolvedSilently(
|
|
2084
|
+
refreshTokenError,
|
|
2085
|
+
silentRequest,
|
|
2086
|
+
cacheLookupPolicy
|
|
2087
|
+
);
|
|
2088
|
+
|
|
2089
|
+
if (shouldTryToResolveSilently) {
|
|
2103
2090
|
this.logger.verbose(
|
|
2104
2091
|
"Refresh token expired/invalid or CacheLookupPolicy is set to Skip, attempting acquire token by iframe.",
|
|
2105
|
-
|
|
2092
|
+
silentRequest.correlationId
|
|
2106
2093
|
);
|
|
2107
2094
|
return invokeAsync(
|
|
2108
2095
|
this.acquireTokenBySilentIframe.bind(this),
|
|
@@ -2112,6 +2099,7 @@ export class StandardController implements IController {
|
|
|
2112
2099
|
silentRequest.correlationId
|
|
2113
2100
|
)(silentRequest);
|
|
2114
2101
|
} else {
|
|
2102
|
+
// Error cannot be silently resolved or iframe renewal is not allowed, interaction required
|
|
2115
2103
|
throw refreshTokenError;
|
|
2116
2104
|
}
|
|
2117
2105
|
}
|
|
@@ -2157,3 +2145,42 @@ export class StandardController implements IController {
|
|
|
2157
2145
|
});
|
|
2158
2146
|
}
|
|
2159
2147
|
}
|
|
2148
|
+
|
|
2149
|
+
/**
|
|
2150
|
+
* Determines whether an error thrown by the refresh token endpoint can be resolved without interaction
|
|
2151
|
+
* @param refreshTokenError
|
|
2152
|
+
* @param silentRequest
|
|
2153
|
+
* @param cacheLookupPolicy
|
|
2154
|
+
* @returns
|
|
2155
|
+
*/
|
|
2156
|
+
function checkIfRefreshTokenErrorCanBeResolvedSilently(
|
|
2157
|
+
refreshTokenError: AuthError,
|
|
2158
|
+
silentRequest: CommonSilentFlowRequest,
|
|
2159
|
+
cacheLookupPolicy: CacheLookupPolicy
|
|
2160
|
+
): boolean {
|
|
2161
|
+
const noInteractionRequired = !(
|
|
2162
|
+
refreshTokenError instanceof InteractionRequiredAuthError &&
|
|
2163
|
+
// For refresh token errors, bad_token does not always require interaction (silently resolvable)
|
|
2164
|
+
refreshTokenError.subError !==
|
|
2165
|
+
InteractionRequiredAuthErrorCodes.badToken
|
|
2166
|
+
);
|
|
2167
|
+
|
|
2168
|
+
// Errors that result when the refresh token needs to be replaced
|
|
2169
|
+
const refreshTokenRefreshRequired =
|
|
2170
|
+
refreshTokenError.errorCode === BrowserConstants.INVALID_GRANT_ERROR ||
|
|
2171
|
+
refreshTokenError.errorCode ===
|
|
2172
|
+
ClientAuthErrorCodes.tokenRefreshRequired;
|
|
2173
|
+
|
|
2174
|
+
// Errors that may be resolved before falling back to interaction (through iframe renewal)
|
|
2175
|
+
const isSilentlyResolvable =
|
|
2176
|
+
(noInteractionRequired && refreshTokenRefreshRequired) ||
|
|
2177
|
+
refreshTokenError.errorCode ===
|
|
2178
|
+
InteractionRequiredAuthErrorCodes.noTokensFound ||
|
|
2179
|
+
refreshTokenError.errorCode ===
|
|
2180
|
+
InteractionRequiredAuthErrorCodes.refreshTokenExpired;
|
|
2181
|
+
|
|
2182
|
+
// Only these policies allow for an iframe renewal attempt
|
|
2183
|
+
const tryIframeRenewal = iFrameRenewalPolicies.includes(cacheLookupPolicy);
|
|
2184
|
+
|
|
2185
|
+
return isSilentlyResolvable && tryIframeRenewal;
|
|
2186
|
+
}
|
package/src/crypto/CryptoOps.ts
CHANGED
|
@@ -71,6 +71,6 @@ export class SignedHttpRequest {
|
|
|
71
71
|
* @returns If keys are properly deleted
|
|
72
72
|
*/
|
|
73
73
|
async removeKeys(publicKeyThumbprint: string): Promise<boolean> {
|
|
74
|
-
return
|
|
74
|
+
return this.cryptoOps.removeTokenBindingKey(publicKeyThumbprint);
|
|
75
75
|
}
|
|
76
76
|
}
|