@azure/msal-common 14.3.0 → 14.4.1-beta.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/account/AccountInfo.d.ts +31 -31
- package/dist/account/AuthToken.d.ts +17 -17
- package/dist/account/AuthToken.mjs +58 -58
- package/dist/account/CcsCredential.d.ts +9 -9
- package/dist/account/CcsCredential.mjs +8 -8
- package/dist/account/ClientCredentials.d.ts +14 -14
- package/dist/account/ClientInfo.d.ts +19 -19
- package/dist/account/ClientInfo.mjs +37 -37
- package/dist/account/TokenClaims.d.ts +65 -65
- package/dist/authority/Authority.d.ts +249 -249
- package/dist/authority/Authority.d.ts.map +1 -1
- package/dist/authority/Authority.mjs +788 -789
- package/dist/authority/Authority.mjs.map +1 -1
- package/dist/authority/AuthorityFactory.d.ts +31 -31
- package/dist/authority/AuthorityFactory.mjs +47 -47
- package/dist/authority/AuthorityMetadata.d.ts +503 -503
- package/dist/authority/AuthorityMetadata.mjs +603 -603
- package/dist/authority/AuthorityOptions.d.ts +27 -27
- package/dist/authority/AuthorityOptions.mjs +18 -18
- package/dist/authority/AuthorityType.d.ts +10 -10
- package/dist/authority/AuthorityType.mjs +13 -13
- package/dist/authority/AzureRegion.d.ts +1 -1
- package/dist/authority/AzureRegionConfiguration.d.ts +5 -5
- package/dist/authority/CloudDiscoveryMetadata.d.ts +5 -5
- package/dist/authority/CloudInstanceDiscoveryErrorResponse.d.ts +13 -13
- package/dist/authority/CloudInstanceDiscoveryErrorResponse.mjs +8 -8
- package/dist/authority/CloudInstanceDiscoveryResponse.d.ts +9 -9
- package/dist/authority/CloudInstanceDiscoveryResponse.mjs +8 -8
- package/dist/authority/ImdsOptions.d.ts +5 -5
- package/dist/authority/OIDCOptions.d.ts +8 -8
- package/dist/authority/OpenIdConfigResponse.d.ts +11 -11
- package/dist/authority/OpenIdConfigResponse.mjs +10 -10
- package/dist/authority/ProtocolMode.d.ts +8 -8
- package/dist/authority/ProtocolMode.mjs +11 -11
- package/dist/authority/RegionDiscovery.d.ts +32 -32
- package/dist/authority/RegionDiscovery.mjs +106 -106
- package/dist/authority/RegionDiscoveryMetadata.d.ts +6 -6
- package/dist/broker/nativeBroker/INativeBrokerPlugin.d.ts +15 -15
- package/dist/cache/CacheManager.d.ts +485 -480
- package/dist/cache/CacheManager.d.ts.map +1 -1
- package/dist/cache/CacheManager.mjs +1102 -1089
- package/dist/cache/CacheManager.mjs.map +1 -1
- package/dist/cache/entities/AccessTokenEntity.d.ts +25 -25
- package/dist/cache/entities/AccountEntity.d.ts +101 -101
- package/dist/cache/entities/AccountEntity.mjs +218 -218
- package/dist/cache/entities/AppMetadataEntity.d.ts +39 -39
- package/dist/cache/entities/AppMetadataEntity.mjs +66 -66
- package/dist/cache/entities/AuthorityMetadataEntity.d.ts +48 -48
- package/dist/cache/entities/AuthorityMetadataEntity.mjs +78 -78
- package/dist/cache/entities/CacheRecord.d.ts +14 -14
- package/dist/cache/entities/CacheRecord.mjs +14 -14
- package/dist/cache/entities/CredentialEntity.d.ts +30 -30
- package/dist/cache/entities/IdTokenEntity.d.ts +8 -8
- package/dist/cache/entities/RefreshTokenEntity.d.ts +7 -5
- package/dist/cache/entities/RefreshTokenEntity.d.ts.map +1 -1
- package/dist/cache/entities/ServerTelemetryEntity.d.ts +5 -12
- package/dist/cache/entities/ServerTelemetryEntity.d.ts.map +1 -1
- package/dist/cache/entities/ThrottlingEntity.d.ts +13 -13
- package/dist/cache/entities/ThrottlingEntity.mjs +23 -23
- package/dist/cache/interface/ICacheManager.d.ts +166 -166
- package/dist/cache/interface/ICachePlugin.d.ts +5 -5
- package/dist/cache/interface/ISerializableTokenCache.d.ts +4 -4
- package/dist/cache/persistence/TokenCacheContext.d.ts +23 -23
- package/dist/cache/persistence/TokenCacheContext.mjs +25 -25
- package/dist/cache/utils/CacheHelpers.d.ts +64 -58
- package/dist/cache/utils/CacheHelpers.d.ts.map +1 -1
- package/dist/cache/utils/CacheHelpers.mjs +236 -217
- package/dist/cache/utils/CacheHelpers.mjs.map +1 -1
- package/dist/cache/utils/CacheTypes.d.ts +67 -67
- package/dist/client/AuthorizationCodeClient.d.ts +74 -73
- package/dist/client/AuthorizationCodeClient.d.ts.map +1 -1
- package/dist/client/AuthorizationCodeClient.mjs +402 -408
- package/dist/client/AuthorizationCodeClient.mjs.map +1 -1
- package/dist/client/BaseClient.d.ts +51 -51
- package/dist/client/BaseClient.mjs +100 -100
- package/dist/client/RefreshTokenClient.d.ts +35 -35
- package/dist/client/RefreshTokenClient.d.ts.map +1 -1
- package/dist/client/RefreshTokenClient.mjs +193 -187
- package/dist/client/RefreshTokenClient.mjs.map +1 -1
- package/dist/client/SilentFlowClient.d.ts +27 -27
- package/dist/client/SilentFlowClient.d.ts.map +1 -1
- package/dist/client/SilentFlowClient.mjs +118 -116
- package/dist/client/SilentFlowClient.mjs.map +1 -1
- package/dist/config/AppTokenProvider.d.ts +38 -38
- package/dist/config/ClientConfiguration.d.ts +150 -150
- package/dist/config/ClientConfiguration.mjs +97 -97
- package/dist/crypto/ICrypto.d.ts +58 -58
- package/dist/crypto/ICrypto.d.ts.map +1 -1
- package/dist/crypto/ICrypto.mjs +30 -30
- package/dist/crypto/ICrypto.mjs.map +1 -1
- package/dist/crypto/IGuidGenerator.d.ts +4 -4
- package/dist/crypto/JoseHeader.d.ts +22 -22
- package/dist/crypto/JoseHeader.d.ts.map +1 -1
- package/dist/crypto/JoseHeader.mjs +38 -38
- package/dist/crypto/JoseHeader.mjs.map +1 -1
- package/dist/crypto/PopTokenGenerator.d.ts +60 -60
- package/dist/crypto/PopTokenGenerator.d.ts.map +1 -1
- package/dist/crypto/PopTokenGenerator.mjs +82 -82
- package/dist/crypto/PopTokenGenerator.mjs.map +1 -1
- package/dist/crypto/SignedHttpRequest.d.ts +15 -11
- package/dist/crypto/SignedHttpRequest.d.ts.map +1 -1
- package/dist/error/AuthError.d.ts +44 -44
- package/dist/error/AuthError.mjs +46 -46
- package/dist/error/AuthErrorCodes.d.ts +5 -5
- package/dist/error/AuthErrorCodes.mjs +9 -9
- package/dist/error/ClientAuthError.d.ts +237 -237
- package/dist/error/ClientAuthError.mjs +249 -249
- package/dist/error/ClientAuthErrorCodes.d.ts +44 -44
- package/dist/error/ClientAuthErrorCodes.mjs +48 -48
- package/dist/error/ClientConfigurationError.d.ts +128 -128
- package/dist/error/ClientConfigurationError.mjs +135 -135
- package/dist/error/ClientConfigurationErrorCodes.d.ts +22 -22
- package/dist/error/ClientConfigurationErrorCodes.mjs +26 -26
- package/dist/error/InteractionRequiredAuthError.d.ts +57 -57
- package/dist/error/InteractionRequiredAuthError.d.ts.map +1 -1
- package/dist/error/InteractionRequiredAuthError.mjs +78 -77
- package/dist/error/InteractionRequiredAuthError.mjs.map +1 -1
- package/dist/error/InteractionRequiredAuthErrorCodes.d.ts +6 -5
- package/dist/error/InteractionRequiredAuthErrorCodes.d.ts.map +1 -1
- package/dist/error/InteractionRequiredAuthErrorCodes.mjs +13 -12
- package/dist/error/InteractionRequiredAuthErrorCodes.mjs.map +1 -1
- package/dist/error/JoseHeaderError.d.ts +15 -15
- package/dist/error/JoseHeaderError.mjs +22 -22
- package/dist/error/JoseHeaderErrorCodes.d.ts +2 -2
- package/dist/error/JoseHeaderErrorCodes.mjs +6 -6
- package/dist/error/ServerError.d.ts +7 -7
- package/dist/error/ServerError.mjs +14 -14
- package/dist/index.cjs +8300 -8350
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +98 -97
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +4 -3
- package/dist/index.mjs.map +1 -1
- package/dist/logger/Logger.d.ts +95 -95
- package/dist/logger/Logger.mjs +188 -188
- package/dist/network/INetworkModule.d.ts +29 -29
- package/dist/network/INetworkModule.mjs +12 -12
- package/dist/network/NetworkManager.d.ts +33 -33
- package/dist/network/NetworkManager.mjs +34 -34
- package/dist/network/RequestThumbprint.d.ts +18 -16
- package/dist/network/RequestThumbprint.d.ts.map +1 -1
- package/dist/network/ThrottlingUtils.d.ts +42 -42
- package/dist/network/ThrottlingUtils.mjs +95 -95
- package/dist/packageMetadata.d.ts +2 -2
- package/dist/packageMetadata.mjs +4 -4
- package/dist/request/AuthenticationHeaderParser.d.ts +19 -19
- package/dist/request/AuthenticationHeaderParser.mjs +55 -55
- package/dist/request/BaseAuthRequest.d.ts +43 -40
- package/dist/request/BaseAuthRequest.d.ts.map +1 -1
- package/dist/request/CommonAuthorizationCodeRequest.d.ts +27 -27
- package/dist/request/CommonAuthorizationUrlRequest.d.ts +50 -50
- package/dist/request/CommonClientCredentialRequest.d.ts +17 -17
- package/dist/request/CommonDeviceCodeRequest.d.ts +21 -21
- package/dist/request/CommonEndSessionRequest.d.ts +21 -21
- package/dist/request/CommonOnBehalfOfRequest.d.ts +13 -13
- package/dist/request/CommonRefreshTokenRequest.d.ts +23 -22
- package/dist/request/CommonRefreshTokenRequest.d.ts.map +1 -1
- package/dist/request/CommonSilentFlowRequest.d.ts +21 -20
- package/dist/request/CommonSilentFlowRequest.d.ts.map +1 -1
- package/dist/request/CommonUsernamePasswordRequest.d.ts +17 -17
- package/dist/request/NativeRequest.d.ts +19 -19
- package/dist/request/NativeSignOutRequest.d.ts +5 -5
- package/dist/request/RequestParameterBuilder.d.ts +217 -217
- package/dist/request/RequestParameterBuilder.mjs +381 -381
- package/dist/request/RequestValidator.d.ts +33 -33
- package/dist/request/RequestValidator.mjs +81 -81
- package/dist/request/ScopeSet.d.ts +88 -88
- package/dist/request/ScopeSet.mjs +197 -197
- package/dist/request/StoreInCache.d.ts +8 -8
- package/dist/response/AuthenticationResult.d.ts +41 -41
- package/dist/response/AuthorizationCodePayload.d.ts +13 -13
- package/dist/response/DeviceCodeResponse.d.ts +25 -25
- package/dist/response/ExternalTokenResponse.d.ts +15 -15
- package/dist/response/IMDSBadResponse.d.ts +4 -4
- package/dist/response/ResponseHandler.d.ts +67 -67
- package/dist/response/ResponseHandler.d.ts.map +1 -1
- package/dist/response/ResponseHandler.mjs +312 -312
- package/dist/response/ResponseHandler.mjs.map +1 -1
- package/dist/response/ServerAuthorizationCodeResponse.d.ts +25 -25
- package/dist/response/ServerAuthorizationTokenResponse.d.ts +46 -46
- package/dist/telemetry/performance/IPerformanceClient.d.ts +51 -51
- package/dist/telemetry/performance/IPerformanceMeasurement.d.ts +5 -5
- package/dist/telemetry/performance/PerformanceClient.d.ts +191 -191
- package/dist/telemetry/performance/PerformanceClient.mjs +409 -409
- package/dist/telemetry/performance/PerformanceEvent.d.ts +464 -457
- package/dist/telemetry/performance/PerformanceEvent.d.ts.map +1 -1
- package/dist/telemetry/performance/PerformanceEvent.mjs +253 -249
- package/dist/telemetry/performance/PerformanceEvent.mjs.map +1 -1
- package/dist/telemetry/performance/StubPerformanceClient.d.ts +24 -24
- package/dist/telemetry/performance/StubPerformanceClient.mjs +76 -76
- package/dist/telemetry/server/ServerTelemetryManager.d.ts +66 -66
- package/dist/telemetry/server/ServerTelemetryManager.d.ts.map +1 -1
- package/dist/telemetry/server/ServerTelemetryManager.mjs +201 -198
- package/dist/telemetry/server/ServerTelemetryManager.mjs.map +1 -1
- package/dist/telemetry/server/ServerTelemetryRequest.d.ts +8 -8
- package/dist/url/IUri.d.ts +12 -12
- package/dist/url/UrlString.d.ts +48 -83
- package/dist/url/UrlString.d.ts.map +1 -1
- package/dist/url/UrlString.mjs +163 -282
- package/dist/url/UrlString.mjs.map +1 -1
- package/dist/utils/Constants.d.ts +365 -366
- package/dist/utils/Constants.d.ts.map +1 -1
- package/dist/utils/Constants.mjs +376 -377
- package/dist/utils/Constants.mjs.map +1 -1
- package/dist/utils/FunctionWrappers.d.ts +27 -27
- package/dist/utils/FunctionWrappers.mjs +84 -84
- package/dist/utils/MsalTypes.d.ts +6 -6
- package/dist/utils/ProtocolUtils.d.ts +42 -42
- package/dist/utils/ProtocolUtils.mjs +69 -69
- package/dist/utils/StringUtils.d.ts +40 -40
- package/dist/utils/StringUtils.mjs +95 -95
- package/dist/utils/TimeUtils.d.ts +27 -27
- package/dist/utils/TimeUtils.mjs +45 -45
- package/dist/utils/UrlUtils.d.ts +11 -0
- package/dist/utils/UrlUtils.d.ts.map +1 -0
- package/dist/utils/UrlUtils.mjs +52 -0
- package/dist/utils/UrlUtils.mjs.map +1 -0
- package/package.json +92 -92
- package/src/authority/Authority.ts +2 -3
- package/src/cache/CacheManager.ts +63 -22
- package/src/cache/entities/RefreshTokenEntity.ts +3 -1
- package/src/cache/entities/ServerTelemetryEntity.ts +2 -30
- package/src/cache/utils/CacheHelpers.ts +27 -1
- package/src/client/AuthorizationCodeClient.ts +5 -14
- package/src/client/RefreshTokenClient.ts +20 -2
- package/src/client/SilentFlowClient.ts +8 -4
- package/src/crypto/ICrypto.ts +7 -2
- package/src/crypto/JoseHeader.ts +4 -4
- package/src/crypto/PopTokenGenerator.ts +2 -0
- package/src/crypto/SignedHttpRequest.ts +6 -0
- package/src/error/InteractionRequiredAuthError.ts +2 -0
- package/src/error/InteractionRequiredAuthErrorCodes.ts +1 -0
- package/src/index.ts +3 -1
- package/src/network/RequestThumbprint.ts +2 -0
- package/src/packageMetadata.ts +1 -1
- package/src/request/BaseAuthRequest.ts +3 -0
- package/src/request/CommonRefreshTokenRequest.ts +1 -0
- package/src/request/CommonSilentFlowRequest.ts +1 -0
- package/src/response/ResponseHandler.ts +8 -4
- package/src/telemetry/performance/PerformanceEvent.ts +12 -1
- package/src/telemetry/server/ServerTelemetryManager.ts +12 -6
- package/src/url/UrlString.ts +6 -153
- package/src/utils/Constants.ts +3 -3
- package/src/utils/UrlUtils.ts +60 -0
- package/dist/cache/entities/ServerTelemetryEntity.mjs +0 -34
- package/dist/cache/entities/ServerTelemetryEntity.mjs.map +0 -1
|
@@ -46,6 +46,7 @@ import { StoreInCache } from "../request/StoreInCache";
|
|
|
46
46
|
import { getAliasesFromStaticSources } from "../authority/AuthorityMetadata";
|
|
47
47
|
import { StaticAuthorityOptions } from "../authority/AuthorityOptions";
|
|
48
48
|
import { TokenClaims } from "../account/TokenClaims";
|
|
49
|
+
import { IPerformanceClient } from "../telemetry/performance/IPerformanceClient";
|
|
49
50
|
|
|
50
51
|
/**
|
|
51
52
|
* Interface class which implement cache storage functions used by MSAL to perform validity checks, and store tokens.
|
|
@@ -876,29 +877,40 @@ export abstract class CacheManager implements ICacheManager {
|
|
|
876
877
|
|
|
877
878
|
/**
|
|
878
879
|
* Retrieve the cached credentials into a cacherecord
|
|
879
|
-
* @param account
|
|
880
|
-
* @param
|
|
881
|
-
* @param
|
|
882
|
-
* @param
|
|
883
|
-
* @param
|
|
880
|
+
* @param account {AccountInfo}
|
|
881
|
+
* @param request {BaseAuthRequest}
|
|
882
|
+
* @param environment {string}
|
|
883
|
+
* @param performanceClient {?IPerformanceClient}
|
|
884
|
+
* @param correlationId {?string}
|
|
884
885
|
*/
|
|
885
886
|
readCacheRecord(
|
|
886
887
|
account: AccountInfo,
|
|
887
888
|
request: BaseAuthRequest,
|
|
888
|
-
environment: string
|
|
889
|
+
environment: string,
|
|
890
|
+
performanceClient?: IPerformanceClient,
|
|
891
|
+
correlationId?: string
|
|
889
892
|
): CacheRecord {
|
|
890
893
|
const tokenKeys = this.getTokenKeys();
|
|
891
894
|
const cachedAccount = this.readAccountFromCache(account);
|
|
892
|
-
const cachedIdToken = this.getIdToken(
|
|
895
|
+
const cachedIdToken = this.getIdToken(
|
|
896
|
+
account,
|
|
897
|
+
tokenKeys,
|
|
898
|
+
performanceClient,
|
|
899
|
+
correlationId
|
|
900
|
+
);
|
|
893
901
|
const cachedAccessToken = this.getAccessToken(
|
|
894
902
|
account,
|
|
895
903
|
request,
|
|
896
|
-
tokenKeys
|
|
904
|
+
tokenKeys,
|
|
905
|
+
performanceClient,
|
|
906
|
+
correlationId
|
|
897
907
|
);
|
|
898
908
|
const cachedRefreshToken = this.getRefreshToken(
|
|
899
909
|
account,
|
|
900
910
|
false,
|
|
901
|
-
tokenKeys
|
|
911
|
+
tokenKeys,
|
|
912
|
+
performanceClient,
|
|
913
|
+
correlationId
|
|
902
914
|
);
|
|
903
915
|
const cachedAppMetadata = this.readAppMetadataFromCache(environment);
|
|
904
916
|
|
|
@@ -930,13 +942,16 @@ export abstract class CacheManager implements ICacheManager {
|
|
|
930
942
|
|
|
931
943
|
/**
|
|
932
944
|
* Retrieve IdTokenEntity from cache
|
|
933
|
-
* @param
|
|
934
|
-
* @param
|
|
935
|
-
* @param
|
|
945
|
+
* @param account {AccountInfo}
|
|
946
|
+
* @param tokenKeys {?TokenKeys}
|
|
947
|
+
* @param performanceClient {?IPerformanceClient}
|
|
948
|
+
* @param correlationId {?string}
|
|
936
949
|
*/
|
|
937
950
|
getIdToken(
|
|
938
951
|
account: AccountInfo,
|
|
939
|
-
tokenKeys?: TokenKeys
|
|
952
|
+
tokenKeys?: TokenKeys,
|
|
953
|
+
performanceClient?: IPerformanceClient,
|
|
954
|
+
correlationId?: string
|
|
940
955
|
): IdTokenEntity | null {
|
|
941
956
|
this.commonLogger.trace("CacheManager - getIdToken called");
|
|
942
957
|
const idTokenFilter: CredentialFilter = {
|
|
@@ -963,6 +978,12 @@ export abstract class CacheManager implements ICacheManager {
|
|
|
963
978
|
idTokens.forEach((idToken) => {
|
|
964
979
|
this.removeIdToken(generateCredentialKey(idToken));
|
|
965
980
|
});
|
|
981
|
+
if (performanceClient && correlationId) {
|
|
982
|
+
performanceClient.addFields(
|
|
983
|
+
{ multiMatchedID: idTokens.length },
|
|
984
|
+
correlationId
|
|
985
|
+
);
|
|
986
|
+
}
|
|
966
987
|
return null;
|
|
967
988
|
}
|
|
968
989
|
|
|
@@ -1047,15 +1068,18 @@ export abstract class CacheManager implements ICacheManager {
|
|
|
1047
1068
|
|
|
1048
1069
|
/**
|
|
1049
1070
|
* Retrieve AccessTokenEntity from cache
|
|
1050
|
-
* @param
|
|
1051
|
-
* @param
|
|
1052
|
-
* @param
|
|
1053
|
-
* @param
|
|
1071
|
+
* @param account {AccountInfo}
|
|
1072
|
+
* @param request {BaseAuthRequest}
|
|
1073
|
+
* @param tokenKeys {?TokenKeys}
|
|
1074
|
+
* @param performanceClient {?IPerformanceClient}
|
|
1075
|
+
* @param correlationId {?string}
|
|
1054
1076
|
*/
|
|
1055
1077
|
getAccessToken(
|
|
1056
1078
|
account: AccountInfo,
|
|
1057
1079
|
request: BaseAuthRequest,
|
|
1058
|
-
tokenKeys?: TokenKeys
|
|
1080
|
+
tokenKeys?: TokenKeys,
|
|
1081
|
+
performanceClient?: IPerformanceClient,
|
|
1082
|
+
correlationId?: string
|
|
1059
1083
|
): AccessTokenEntity | null {
|
|
1060
1084
|
this.commonLogger.trace("CacheManager - getAccessToken called");
|
|
1061
1085
|
const scopes = ScopeSet.createSearchScopes(request.scopes);
|
|
@@ -1119,6 +1143,12 @@ export abstract class CacheManager implements ICacheManager {
|
|
|
1119
1143
|
accessTokens.forEach((accessToken) => {
|
|
1120
1144
|
void this.removeAccessToken(generateCredentialKey(accessToken));
|
|
1121
1145
|
});
|
|
1146
|
+
if (performanceClient && correlationId) {
|
|
1147
|
+
performanceClient.addFields(
|
|
1148
|
+
{ multiMatchedAT: accessTokens.length },
|
|
1149
|
+
correlationId
|
|
1150
|
+
);
|
|
1151
|
+
}
|
|
1122
1152
|
return null;
|
|
1123
1153
|
}
|
|
1124
1154
|
|
|
@@ -1216,14 +1246,18 @@ export abstract class CacheManager implements ICacheManager {
|
|
|
1216
1246
|
|
|
1217
1247
|
/**
|
|
1218
1248
|
* Helper to retrieve the appropriate refresh token from cache
|
|
1219
|
-
* @param
|
|
1220
|
-
* @param
|
|
1221
|
-
* @param
|
|
1249
|
+
* @param account {AccountInfo}
|
|
1250
|
+
* @param familyRT {boolean}
|
|
1251
|
+
* @param tokenKeys {?TokenKeys}
|
|
1252
|
+
* @param performanceClient {?IPerformanceClient}
|
|
1253
|
+
* @param correlationId {?string}
|
|
1222
1254
|
*/
|
|
1223
1255
|
getRefreshToken(
|
|
1224
1256
|
account: AccountInfo,
|
|
1225
1257
|
familyRT: boolean,
|
|
1226
|
-
tokenKeys?: TokenKeys
|
|
1258
|
+
tokenKeys?: TokenKeys,
|
|
1259
|
+
performanceClient?: IPerformanceClient,
|
|
1260
|
+
correlationId?: string
|
|
1227
1261
|
): RefreshTokenEntity | null {
|
|
1228
1262
|
this.commonLogger.trace("CacheManager - getRefreshToken called");
|
|
1229
1263
|
const id = familyRT ? THE_FAMILY_ID : undefined;
|
|
@@ -1266,6 +1300,13 @@ export abstract class CacheManager implements ICacheManager {
|
|
|
1266
1300
|
}
|
|
1267
1301
|
// address the else case after remove functions address environment aliases
|
|
1268
1302
|
|
|
1303
|
+
if (numRefreshTokens > 1 && performanceClient && correlationId) {
|
|
1304
|
+
performanceClient.addFields(
|
|
1305
|
+
{ multiMatchedRT: numRefreshTokens },
|
|
1306
|
+
correlationId
|
|
1307
|
+
);
|
|
1308
|
+
}
|
|
1309
|
+
|
|
1269
1310
|
this.commonLogger.info(
|
|
1270
1311
|
"CacheManager:getRefreshToken - returning refresh token"
|
|
1271
1312
|
);
|
|
@@ -3,36 +3,8 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
export class ServerTelemetryEntity {
|
|
6
|
+
export type ServerTelemetryEntity = {
|
|
9
7
|
failedRequests: Array<string | number>;
|
|
10
8
|
errors: string[];
|
|
11
9
|
cacheHits: number;
|
|
12
|
-
|
|
13
|
-
constructor() {
|
|
14
|
-
this.failedRequests = [];
|
|
15
|
-
this.errors = [];
|
|
16
|
-
this.cacheHits = 0;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* validates if a given cache entry is "Telemetry", parses <key,value>
|
|
21
|
-
* @param key
|
|
22
|
-
* @param entity
|
|
23
|
-
*/
|
|
24
|
-
static isServerTelemetryEntity(key: string, entity?: object): boolean {
|
|
25
|
-
const validateKey: boolean =
|
|
26
|
-
key.indexOf(SERVER_TELEM_CONSTANTS.CACHE_KEY) === 0;
|
|
27
|
-
let validateEntity: boolean = true;
|
|
28
|
-
|
|
29
|
-
if (entity) {
|
|
30
|
-
validateEntity =
|
|
31
|
-
entity.hasOwnProperty("failedRequests") &&
|
|
32
|
-
entity.hasOwnProperty("errors") &&
|
|
33
|
-
entity.hasOwnProperty("cacheHits");
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
return validateKey && validateEntity;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
10
|
+
};
|
|
@@ -12,6 +12,7 @@ import {
|
|
|
12
12
|
import {
|
|
13
13
|
AuthenticationScheme,
|
|
14
14
|
CredentialType,
|
|
15
|
+
SERVER_TELEM_CONSTANTS,
|
|
15
16
|
Separators,
|
|
16
17
|
} from "../../utils/Constants";
|
|
17
18
|
import { TimeUtils } from "../../utils/TimeUtils";
|
|
@@ -167,7 +168,8 @@ export function createRefreshTokenEntity(
|
|
|
167
168
|
refreshToken: string,
|
|
168
169
|
clientId: string,
|
|
169
170
|
familyId?: string,
|
|
170
|
-
userAssertionHash?: string
|
|
171
|
+
userAssertionHash?: string,
|
|
172
|
+
expiresOn?: string
|
|
171
173
|
): RefreshTokenEntity {
|
|
172
174
|
const rtEntity: RefreshTokenEntity = {
|
|
173
175
|
credentialType: CredentialType.REFRESH_TOKEN,
|
|
@@ -185,6 +187,10 @@ export function createRefreshTokenEntity(
|
|
|
185
187
|
rtEntity.familyId = familyId;
|
|
186
188
|
}
|
|
187
189
|
|
|
190
|
+
if (expiresOn) {
|
|
191
|
+
rtEntity.expiresOn = expiresOn;
|
|
192
|
+
}
|
|
193
|
+
|
|
188
194
|
return rtEntity;
|
|
189
195
|
}
|
|
190
196
|
|
|
@@ -304,3 +310,23 @@ function generateScheme(credentialEntity: CredentialEntity): string {
|
|
|
304
310
|
? credentialEntity.tokenType.toLowerCase()
|
|
305
311
|
: "";
|
|
306
312
|
}
|
|
313
|
+
|
|
314
|
+
/**
|
|
315
|
+
* validates if a given cache entry is "Telemetry", parses <key,value>
|
|
316
|
+
* @param key
|
|
317
|
+
* @param entity
|
|
318
|
+
*/
|
|
319
|
+
export function isServerTelemetryEntity(key: string, entity?: object): boolean {
|
|
320
|
+
const validateKey: boolean =
|
|
321
|
+
key.indexOf(SERVER_TELEM_CONSTANTS.CACHE_KEY) === 0;
|
|
322
|
+
let validateEntity: boolean = true;
|
|
323
|
+
|
|
324
|
+
if (entity) {
|
|
325
|
+
validateEntity =
|
|
326
|
+
entity.hasOwnProperty("failedRequests") &&
|
|
327
|
+
entity.hasOwnProperty("errors") &&
|
|
328
|
+
entity.hasOwnProperty("cacheHits");
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
return validateKey && validateEntity;
|
|
332
|
+
}
|
|
@@ -161,7 +161,8 @@ export class AuthorizationCodeClient extends BaseClient {
|
|
|
161
161
|
undefined,
|
|
162
162
|
undefined,
|
|
163
163
|
undefined,
|
|
164
|
-
requestId
|
|
164
|
+
requestId,
|
|
165
|
+
(TimeUtils.nowSeconds() + 24 * 60 * 60).toString()
|
|
165
166
|
);
|
|
166
167
|
}
|
|
167
168
|
|
|
@@ -171,7 +172,7 @@ export class AuthorizationCodeClient extends BaseClient {
|
|
|
171
172
|
* @param hashFragment
|
|
172
173
|
*/
|
|
173
174
|
handleFragmentResponse(
|
|
174
|
-
|
|
175
|
+
serverParams: ServerAuthorizationCodeResponse,
|
|
175
176
|
cachedState: string
|
|
176
177
|
): AuthorizationCodePayload {
|
|
177
178
|
// Handle responses.
|
|
@@ -184,13 +185,6 @@ export class AuthorizationCodeClient extends BaseClient {
|
|
|
184
185
|
null
|
|
185
186
|
);
|
|
186
187
|
|
|
187
|
-
const serverParams: ServerAuthorizationCodeResponse =
|
|
188
|
-
UrlString.getDeserializedCodeResponse(
|
|
189
|
-
this.config.authOptions.authority.options.OIDCOptions
|
|
190
|
-
?.serverResponseType,
|
|
191
|
-
hashFragment
|
|
192
|
-
);
|
|
193
|
-
|
|
194
188
|
// Get code response
|
|
195
189
|
responseHandler.validateServerAuthorizationCodeResponse(
|
|
196
190
|
serverParams,
|
|
@@ -203,11 +197,8 @@ export class AuthorizationCodeClient extends BaseClient {
|
|
|
203
197
|
ClientAuthErrorCodes.authorizationCodeMissingFromServerResponse
|
|
204
198
|
);
|
|
205
199
|
}
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
// Code param is optional in ServerAuthorizationCodeResponse but required in AuthorizationCodePaylod
|
|
209
|
-
code: serverParams.code,
|
|
210
|
-
};
|
|
200
|
+
|
|
201
|
+
return serverParams as AuthorizationCodePayload;
|
|
211
202
|
}
|
|
212
203
|
|
|
213
204
|
/**
|
|
@@ -102,7 +102,8 @@ export class RefreshTokenClient extends BaseClient {
|
|
|
102
102
|
undefined,
|
|
103
103
|
true,
|
|
104
104
|
request.forceCache,
|
|
105
|
-
requestId
|
|
105
|
+
requestId,
|
|
106
|
+
request.expiresOn
|
|
106
107
|
);
|
|
107
108
|
}
|
|
108
109
|
|
|
@@ -202,13 +203,29 @@ export class RefreshTokenClient extends BaseClient {
|
|
|
202
203
|
this.logger,
|
|
203
204
|
this.performanceClient,
|
|
204
205
|
request.correlationId
|
|
205
|
-
)(
|
|
206
|
+
)(
|
|
207
|
+
request.account,
|
|
208
|
+
foci,
|
|
209
|
+
undefined,
|
|
210
|
+
this.performanceClient,
|
|
211
|
+
request.correlationId
|
|
212
|
+
);
|
|
206
213
|
|
|
207
214
|
if (!refreshToken) {
|
|
208
215
|
throw createInteractionRequiredAuthError(
|
|
209
216
|
InteractionRequiredAuthErrorCodes.noTokensFound
|
|
210
217
|
);
|
|
211
218
|
}
|
|
219
|
+
|
|
220
|
+
if (
|
|
221
|
+
request.enableRTExpiryCheck &&
|
|
222
|
+
refreshToken.expiresOn &&
|
|
223
|
+
Number(refreshToken.expiresOn) < TimeUtils.nowSeconds() + 5 * 60
|
|
224
|
+
) {
|
|
225
|
+
throw createInteractionRequiredAuthError(
|
|
226
|
+
InteractionRequiredAuthErrorCodes.refreshTokenExpired
|
|
227
|
+
);
|
|
228
|
+
}
|
|
212
229
|
// attach cached RT size to the current measurement
|
|
213
230
|
|
|
214
231
|
const refreshTokenRequest: CommonRefreshTokenRequest = {
|
|
@@ -220,6 +237,7 @@ export class RefreshTokenClient extends BaseClient {
|
|
|
220
237
|
credential: request.account.homeAccountId,
|
|
221
238
|
type: CcsCredentialType.HOME_ACCOUNT_ID,
|
|
222
239
|
},
|
|
240
|
+
expiresOn: refreshToken.expiresOn,
|
|
223
241
|
};
|
|
224
242
|
|
|
225
243
|
return invokeAsync(
|
|
@@ -124,7 +124,9 @@ export class SilentFlowClient extends BaseClient {
|
|
|
124
124
|
const cacheRecord = this.cacheManager.readCacheRecord(
|
|
125
125
|
request.account,
|
|
126
126
|
request,
|
|
127
|
-
environment
|
|
127
|
+
environment,
|
|
128
|
+
this.performanceClient,
|
|
129
|
+
request.correlationId
|
|
128
130
|
);
|
|
129
131
|
|
|
130
132
|
if (!cacheRecord.accessToken) {
|
|
@@ -190,9 +192,11 @@ export class SilentFlowClient extends BaseClient {
|
|
|
190
192
|
},
|
|
191
193
|
correlationId
|
|
192
194
|
);
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
195
|
+
if (cacheOutcome !== CacheOutcome.NOT_APPLICABLE) {
|
|
196
|
+
this.logger.info(
|
|
197
|
+
`Token refresh is required due to cache outcome: ${cacheOutcome}`
|
|
198
|
+
);
|
|
199
|
+
}
|
|
196
200
|
}
|
|
197
201
|
|
|
198
202
|
/**
|
package/src/crypto/ICrypto.ts
CHANGED
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
createClientAuthError,
|
|
9
9
|
} from "../error/ClientAuthError";
|
|
10
10
|
import { BaseAuthRequest } from "../request/BaseAuthRequest";
|
|
11
|
-
import { SignedHttpRequest } from "./SignedHttpRequest";
|
|
11
|
+
import { ShrOptions, SignedHttpRequest } from "./SignedHttpRequest";
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* The PkceCodes type describes the structure
|
|
@@ -22,7 +22,11 @@ export type PkceCodes = {
|
|
|
22
22
|
|
|
23
23
|
export type SignedHttpRequestParameters = Pick<
|
|
24
24
|
BaseAuthRequest,
|
|
25
|
-
|
|
25
|
+
| "resourceRequestMethod"
|
|
26
|
+
| "resourceRequestUri"
|
|
27
|
+
| "shrClaims"
|
|
28
|
+
| "shrNonce"
|
|
29
|
+
| "shrOptions"
|
|
26
30
|
> & {
|
|
27
31
|
correlationId?: string;
|
|
28
32
|
};
|
|
@@ -68,6 +72,7 @@ export interface ICrypto {
|
|
|
68
72
|
signJwt(
|
|
69
73
|
payload: SignedHttpRequest,
|
|
70
74
|
kid: string,
|
|
75
|
+
shrOptions?: ShrOptions,
|
|
71
76
|
correlationId?: string
|
|
72
77
|
): Promise<string>;
|
|
73
78
|
/**
|
package/src/crypto/JoseHeader.ts
CHANGED
|
@@ -7,17 +7,17 @@ import {
|
|
|
7
7
|
JoseHeaderErrorCodes,
|
|
8
8
|
createJoseHeaderError,
|
|
9
9
|
} from "../error/JoseHeaderError";
|
|
10
|
-
import {
|
|
10
|
+
import { JsonWebTokenTypes } from "../utils/Constants";
|
|
11
11
|
|
|
12
12
|
export type JoseHeaderOptions = {
|
|
13
|
-
typ?:
|
|
13
|
+
typ?: JsonWebTokenTypes;
|
|
14
14
|
alg?: string;
|
|
15
15
|
kid?: string;
|
|
16
16
|
};
|
|
17
17
|
|
|
18
18
|
/** @internal */
|
|
19
19
|
export class JoseHeader {
|
|
20
|
-
public typ?:
|
|
20
|
+
public typ?: JsonWebTokenTypes;
|
|
21
21
|
public alg?: string;
|
|
22
22
|
public kid?: string;
|
|
23
23
|
|
|
@@ -48,7 +48,7 @@ export class JoseHeader {
|
|
|
48
48
|
|
|
49
49
|
const shrHeader = new JoseHeader({
|
|
50
50
|
// Access Token PoP headers must have type pop, but the type header can be overriden for special cases
|
|
51
|
-
typ: shrHeaderOptions.typ ||
|
|
51
|
+
typ: shrHeaderOptions.typ || JsonWebTokenTypes.Pop,
|
|
52
52
|
kid: shrHeaderOptions.kid,
|
|
53
53
|
alg: shrHeaderOptions.alg,
|
|
54
54
|
});
|
|
@@ -133,6 +133,7 @@ export class PopTokenGenerator {
|
|
|
133
133
|
resourceRequestUri,
|
|
134
134
|
shrClaims,
|
|
135
135
|
shrNonce,
|
|
136
|
+
shrOptions,
|
|
136
137
|
} = request;
|
|
137
138
|
|
|
138
139
|
const resourceUrlString = resourceRequestUri
|
|
@@ -154,6 +155,7 @@ export class PopTokenGenerator {
|
|
|
154
155
|
...claims,
|
|
155
156
|
},
|
|
156
157
|
keyId,
|
|
158
|
+
shrOptions,
|
|
157
159
|
request.correlationId
|
|
158
160
|
);
|
|
159
161
|
}
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
+
import { JoseHeaderOptions } from "./JoseHeader";
|
|
7
|
+
|
|
6
8
|
export type SignedHttpRequest = {
|
|
7
9
|
at?: string;
|
|
8
10
|
cnf?: object;
|
|
@@ -14,3 +16,7 @@ export type SignedHttpRequest = {
|
|
|
14
16
|
nonce?: string;
|
|
15
17
|
client_claims?: string;
|
|
16
18
|
};
|
|
19
|
+
|
|
20
|
+
export type ShrOptions = {
|
|
21
|
+
header: JoseHeaderOptions;
|
|
22
|
+
};
|
|
@@ -28,6 +28,8 @@ export const InteractionRequiredAuthSubErrorMessage = [
|
|
|
28
28
|
const InteractionRequiredAuthErrorMessages = {
|
|
29
29
|
[InteractionRequiredAuthErrorCodes.noTokensFound]:
|
|
30
30
|
"No refresh token found in the cache. Please sign-in.",
|
|
31
|
+
[InteractionRequiredAuthErrorCodes.refreshTokenExpired]:
|
|
32
|
+
"Refresh token has expired.",
|
|
31
33
|
[InteractionRequiredAuthErrorCodes.nativeAccountUnavailable]:
|
|
32
34
|
"The requested account is not available in the native broker. It may have been deleted or logged out. Please sign-in again using an interactive API.",
|
|
33
35
|
};
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
// Codes defined by MSAL
|
|
7
7
|
export const noTokensFound = "no_tokens_found";
|
|
8
8
|
export const nativeAccountUnavailable = "native_account_unavailable";
|
|
9
|
+
export const refreshTokenExpired = "refresh_token_expired";
|
|
9
10
|
|
|
10
11
|
// Codes potentially returned by server
|
|
11
12
|
export const interactionRequired = "interaction_required";
|
package/src/index.ts
CHANGED
|
@@ -105,7 +105,7 @@ export {
|
|
|
105
105
|
DEFAULT_CRYPTO_IMPLEMENTATION,
|
|
106
106
|
SignedHttpRequestParameters,
|
|
107
107
|
} from "./crypto/ICrypto";
|
|
108
|
-
export { SignedHttpRequest } from "./crypto/SignedHttpRequest";
|
|
108
|
+
export { SignedHttpRequest, ShrOptions } from "./crypto/SignedHttpRequest";
|
|
109
109
|
export { IGuidGenerator } from "./crypto/IGuidGenerator";
|
|
110
110
|
export { JoseHeader } from "./crypto/JoseHeader";
|
|
111
111
|
// Request
|
|
@@ -193,6 +193,7 @@ export {
|
|
|
193
193
|
GrantType,
|
|
194
194
|
AADAuthorityConstants,
|
|
195
195
|
HttpStatus,
|
|
196
|
+
JsonWebTokenTypes,
|
|
196
197
|
} from "./utils/Constants";
|
|
197
198
|
export { StringUtils } from "./utils/StringUtils";
|
|
198
199
|
export { StringDict } from "./utils/MsalTypes";
|
|
@@ -202,6 +203,7 @@ export {
|
|
|
202
203
|
LibraryStateObject,
|
|
203
204
|
} from "./utils/ProtocolUtils";
|
|
204
205
|
export { TimeUtils } from "./utils/TimeUtils";
|
|
206
|
+
export * as UrlUtils from "./utils/UrlUtils";
|
|
205
207
|
export * from "./utils/FunctionWrappers";
|
|
206
208
|
// Server Telemetry
|
|
207
209
|
export { ServerTelemetryManager } from "./telemetry/server/ServerTelemetryManager";
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
+
import { ShrOptions } from "../crypto/SignedHttpRequest";
|
|
6
7
|
import { AuthenticationScheme } from "../utils/Constants";
|
|
7
8
|
|
|
8
9
|
/**
|
|
@@ -19,4 +20,5 @@ export type RequestThumbprint = {
|
|
|
19
20
|
resourceRequestUri?: string;
|
|
20
21
|
shrClaims?: string;
|
|
21
22
|
sshKid?: string;
|
|
23
|
+
shrOptions?: ShrOptions;
|
|
22
24
|
};
|
package/src/packageMetadata.ts
CHANGED
|
@@ -7,6 +7,7 @@ import { AuthenticationScheme } from "../utils/Constants";
|
|
|
7
7
|
import { AzureCloudOptions } from "../config/ClientConfiguration";
|
|
8
8
|
import { StringDict } from "../utils/MsalTypes";
|
|
9
9
|
import { StoreInCache } from "./StoreInCache";
|
|
10
|
+
import { ShrOptions } from "../crypto/SignedHttpRequest";
|
|
10
11
|
|
|
11
12
|
/**
|
|
12
13
|
* BaseAuthRequest
|
|
@@ -17,6 +18,7 @@ import { StoreInCache } from "./StoreInCache";
|
|
|
17
18
|
* - claims - A stringified claims request which will be added to all /authorize and /token calls
|
|
18
19
|
* - shrClaims - A stringified claims object which will be added to a Signed HTTP Request
|
|
19
20
|
* - shrNonce - A server-generated timestamp that has been encrypted and base64URL encoded, which will be added to a Signed HTTP Request.
|
|
21
|
+
* - shrOptions - An object containing options for the Signed HTTP Request
|
|
20
22
|
* - resourceRequestMethod - HTTP Request type used to request data from the resource (i.e. "GET", "POST", etc.). Used for proof-of-possession flows.
|
|
21
23
|
* - resourceRequestUri - URI that token will be used for. Used for proof-of-possession flows.
|
|
22
24
|
* - sshJwk - A stringified JSON Web Key representing a public key that can be signed by an SSH certificate.
|
|
@@ -34,6 +36,7 @@ export type BaseAuthRequest = {
|
|
|
34
36
|
claims?: string;
|
|
35
37
|
shrClaims?: string;
|
|
36
38
|
shrNonce?: string;
|
|
39
|
+
shrOptions?: ShrOptions;
|
|
37
40
|
resourceRequestMethod?: string;
|
|
38
41
|
resourceRequestUri?: string;
|
|
39
42
|
sshJwk?: string;
|
|
@@ -245,7 +245,8 @@ export class ResponseHandler {
|
|
|
245
245
|
userAssertionHash?: string,
|
|
246
246
|
handlingRefreshTokenResponse?: boolean,
|
|
247
247
|
forceCacheRefreshTokenResponse?: boolean,
|
|
248
|
-
serverRequestId?: string
|
|
248
|
+
serverRequestId?: string,
|
|
249
|
+
rtExpiresOn?: string
|
|
249
250
|
): Promise<AuthenticationResult> {
|
|
250
251
|
this.performanceClient?.addQueueMeasurement(
|
|
251
252
|
PerformanceEvents.HandleServerTokenResponse,
|
|
@@ -311,7 +312,8 @@ export class ResponseHandler {
|
|
|
311
312
|
request,
|
|
312
313
|
idTokenClaims,
|
|
313
314
|
userAssertionHash,
|
|
314
|
-
authCodePayload
|
|
315
|
+
authCodePayload,
|
|
316
|
+
rtExpiresOn
|
|
315
317
|
);
|
|
316
318
|
let cacheContext;
|
|
317
319
|
try {
|
|
@@ -397,7 +399,8 @@ export class ResponseHandler {
|
|
|
397
399
|
request: BaseAuthRequest,
|
|
398
400
|
idTokenClaims?: TokenClaims,
|
|
399
401
|
userAssertionHash?: string,
|
|
400
|
-
authCodePayload?: AuthorizationCodePayload
|
|
402
|
+
authCodePayload?: AuthorizationCodePayload,
|
|
403
|
+
rtExpiresOn?: string
|
|
401
404
|
): CacheRecord {
|
|
402
405
|
const env = authority.getPreferredCache();
|
|
403
406
|
if (!env) {
|
|
@@ -491,7 +494,8 @@ export class ResponseHandler {
|
|
|
491
494
|
serverTokenResponse.refresh_token,
|
|
492
495
|
this.clientId,
|
|
493
496
|
serverTokenResponse.foci,
|
|
494
|
-
userAssertionHash
|
|
497
|
+
userAssertionHash,
|
|
498
|
+
rtExpiresOn
|
|
495
499
|
);
|
|
496
500
|
}
|
|
497
501
|
|
|
@@ -208,7 +208,7 @@ export const PerformanceEvents = {
|
|
|
208
208
|
* Functions from InteractionHandler (msal-browser)
|
|
209
209
|
*/
|
|
210
210
|
HandleCodeResponseFromServer: "handleCodeResponseFromServer",
|
|
211
|
-
|
|
211
|
+
HandleCodeResponse: "handleCodeResponse",
|
|
212
212
|
UpdateTokenEndpointAuthority: "updateTokenEndpointAuthority",
|
|
213
213
|
|
|
214
214
|
/**
|
|
@@ -229,6 +229,7 @@ export const PerformanceEvents = {
|
|
|
229
229
|
* handleServerTokenResponse API in ResponseHandler (msal-common)
|
|
230
230
|
*/
|
|
231
231
|
HandleServerTokenResponse: "handleServerTokenResponse",
|
|
232
|
+
DeserializeResponse: "deserializeResponse",
|
|
232
233
|
|
|
233
234
|
/**
|
|
234
235
|
* Authority functions
|
|
@@ -558,6 +559,13 @@ export type PerformanceEvent = {
|
|
|
558
559
|
* Nested App Auth Fields
|
|
559
560
|
*/
|
|
560
561
|
nestedAppAuthRequest?: boolean;
|
|
562
|
+
|
|
563
|
+
/**
|
|
564
|
+
* Multiple matched access/id/refresh tokens in the cache
|
|
565
|
+
*/
|
|
566
|
+
multiMatchedAT?: number;
|
|
567
|
+
multiMatchedID?: number;
|
|
568
|
+
multiMatchedRT?: number;
|
|
561
569
|
};
|
|
562
570
|
|
|
563
571
|
export const IntFields: ReadonlySet<string> = new Set([
|
|
@@ -570,4 +578,7 @@ export const IntFields: ReadonlySet<string> = new Set([
|
|
|
570
578
|
"queuedTimeMs",
|
|
571
579
|
"startTimeMs",
|
|
572
580
|
"status",
|
|
581
|
+
"multiMatchedAT",
|
|
582
|
+
"multiMatchedID",
|
|
583
|
+
"multiMatchedRT",
|
|
573
584
|
]);
|