oidc-spa 7.2.0-rc.1 → 7.2.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/backend.js.map +1 -1
- package/core/AuthResponse.js.map +1 -1
- package/core/Oidc.js.map +1 -1
- package/core/OidcInitializationError.d.ts +0 -13
- package/core/OidcInitializationError.js +0 -243
- package/core/OidcInitializationError.js.map +1 -1
- package/core/OidcMetadata.js.map +1 -1
- package/core/StateData.js.map +1 -1
- package/core/configId.js.map +1 -1
- package/core/createOidc.js +38 -5
- package/core/createOidc.js.map +1 -1
- package/core/diagnostic.d.ts +14 -0
- package/core/diagnostic.js +214 -0
- package/core/diagnostic.js.map +1 -0
- package/core/evtIsUserActive.js.map +1 -1
- package/core/handleOidcCallback.js.map +1 -1
- package/core/iframeMessageProtection.js.map +1 -1
- package/core/index.js.map +1 -1
- package/core/initialLocationHref.js.map +1 -1
- package/core/isNewBrowserSession.js.map +1 -1
- package/core/loginOrGoToAuthServer.js.map +1 -1
- package/core/loginPropagationToOtherTabs.js.map +1 -1
- package/core/loginSilent.js.map +1 -1
- package/core/logoutPropagationToOtherTabs.js.map +1 -1
- package/core/oidcClientTsUserToTokens.js.map +1 -1
- package/core/ongoingLoginOrRefreshProcesses.js.map +1 -1
- package/core/persistedAuthState.js.map +1 -1
- package/entrypoint.js.map +1 -1
- package/esm/core/AuthResponse.d.ts +5 -0
- package/{src/core/AuthResponse.ts → esm/core/AuthResponse.js} +2 -10
- package/esm/core/AuthResponse.js.map +1 -0
- package/esm/core/Oidc.d.ts +126 -0
- package/esm/core/Oidc.js +2 -0
- package/esm/core/Oidc.js.map +1 -0
- package/esm/core/OidcInitializationError.d.ts +7 -0
- package/esm/core/OidcInitializationError.js +17 -0
- package/esm/core/OidcInitializationError.js.map +1 -0
- package/{src/core/OidcMetadata.ts → esm/core/OidcMetadata.d.ts} +0 -5
- package/esm/core/OidcMetadata.js +3 -0
- package/esm/core/OidcMetadata.js.map +1 -0
- package/esm/core/StateData.d.ts +42 -0
- package/esm/core/StateData.js +55 -0
- package/esm/core/StateData.js.map +1 -0
- package/esm/core/configId.d.ts +4 -0
- package/esm/core/configId.js +4 -0
- package/esm/core/configId.js.map +1 -0
- package/esm/core/createOidc.d.ts +132 -0
- package/{src/core/createOidc.ts → esm/core/createOidc.js} +269 -806
- package/esm/core/createOidc.js.map +1 -0
- package/esm/core/diagnostic.d.ts +14 -0
- package/{src/core/OidcInitializationError.ts → esm/core/diagnostic.js} +32 -109
- package/esm/core/diagnostic.js.map +1 -0
- package/esm/core/evtIsUserActive.d.ts +5 -0
- package/{src/core/evtIsUserActive.ts → esm/core/evtIsUserActive.js} +14 -46
- package/esm/core/evtIsUserActive.js.map +1 -0
- package/esm/core/handleOidcCallback.d.ts +13 -0
- package/{src/core/handleOidcCallback.ts → esm/core/handleOidcCallback.js} +25 -121
- package/esm/core/handleOidcCallback.js.map +1 -0
- package/esm/core/iframeMessageProtection.d.ts +20 -0
- package/{src/core/iframeMessageProtection.ts → esm/core/iframeMessageProtection.js} +10 -45
- package/esm/core/iframeMessageProtection.js.map +1 -0
- package/esm/core/index.js +4 -0
- package/esm/core/index.js.map +1 -0
- package/esm/core/initialLocationHref.d.ts +1 -0
- package/{src/core/initialLocationHref.ts → esm/core/initialLocationHref.js} +1 -1
- package/esm/core/initialLocationHref.js.map +1 -0
- package/esm/core/isNewBrowserSession.d.ts +9 -0
- package/{src/core/isNewBrowserSession.ts → esm/core/isNewBrowserSession.js} +3 -15
- package/esm/core/isNewBrowserSession.js.map +1 -0
- package/esm/core/loginOrGoToAuthServer.d.ts +40 -0
- package/{src/core/loginOrGoToAuthServer.ts → esm/core/loginOrGoToAuthServer.js} +60 -168
- package/esm/core/loginOrGoToAuthServer.js.map +1 -0
- package/esm/core/loginPropagationToOtherTabs.d.ts +8 -0
- package/{src/core/loginPropagationToOtherTabs.ts → esm/core/loginPropagationToOtherTabs.js} +7 -25
- package/esm/core/loginPropagationToOtherTabs.js.map +1 -0
- package/esm/core/loginSilent.d.ts +28 -0
- package/esm/core/loginSilent.js +125 -0
- package/esm/core/loginSilent.js.map +1 -0
- package/esm/core/logoutPropagationToOtherTabs.d.ts +10 -0
- package/{src/core/logoutPropagationToOtherTabs.ts → esm/core/logoutPropagationToOtherTabs.js} +8 -28
- package/esm/core/logoutPropagationToOtherTabs.js.map +1 -0
- package/esm/core/oidcClientTsUserToTokens.d.ts +11 -0
- package/esm/core/oidcClientTsUserToTokens.js +155 -0
- package/esm/core/oidcClientTsUserToTokens.js.map +1 -0
- package/esm/core/ongoingLoginOrRefreshProcesses.d.ts +6 -0
- package/{src/core/ongoingLoginOrRefreshProcesses.ts → esm/core/ongoingLoginOrRefreshProcesses.js} +6 -24
- package/esm/core/ongoingLoginOrRefreshProcesses.js.map +1 -0
- package/esm/core/persistedAuthState.d.ts +28 -0
- package/esm/core/persistedAuthState.js +64 -0
- package/esm/core/persistedAuthState.js.map +1 -0
- package/esm/entrypoint.d.ts +7 -0
- package/{src/entrypoint.ts → esm/entrypoint.js} +3 -26
- package/esm/entrypoint.js.map +1 -0
- package/esm/index.js +2 -0
- package/esm/index.js.map +1 -0
- package/esm/keycloak/index.d.ts +3 -0
- package/esm/keycloak/index.js +3 -0
- package/esm/keycloak/index.js.map +1 -0
- package/esm/keycloak/isKeycloak.d.ts +3 -0
- package/{src/keycloak/isKeycloak.ts → esm/keycloak/isKeycloak.js} +2 -8
- package/esm/keycloak/isKeycloak.js.map +1 -0
- package/esm/keycloak/keycloak-js/Keycloak.d.ts +284 -0
- package/{src/keycloak/keycloak-js/Keycloak.ts → esm/keycloak/keycloak-js/Keycloak.js} +116 -439
- package/esm/keycloak/keycloak-js/Keycloak.js.map +1 -0
- package/esm/keycloak/keycloak-js/index.js +2 -0
- package/esm/keycloak/keycloak-js/index.js.map +1 -0
- package/{src/keycloak/keycloak-js/types.ts → esm/keycloak/keycloak-js/types.d.ts} +3 -84
- package/esm/keycloak/keycloak-js/types.js +2 -0
- package/esm/keycloak/keycloak-js/types.js.map +1 -0
- package/esm/keycloak/keycloakIssuerUriParsed.d.ts +9 -0
- package/{src/keycloak/keycloakIssuerUriParsed.ts → esm/keycloak/keycloakIssuerUriParsed.js} +2 -15
- package/esm/keycloak/keycloakIssuerUriParsed.js.map +1 -0
- package/esm/keycloak/keycloakUtils.d.ts +37 -0
- package/esm/keycloak/keycloakUtils.js +44 -0
- package/esm/keycloak/keycloakUtils.js.map +1 -0
- package/esm/keycloak-js.js +2 -0
- package/esm/keycloak-js.js.map +1 -0
- package/esm/mock/index.js +2 -0
- package/esm/mock/index.js.map +1 -0
- package/esm/mock/oidc.d.ts +19 -0
- package/{src/mock/oidc.ts → esm/mock/oidc.js} +28 -88
- package/esm/mock/oidc.js.map +1 -0
- package/esm/mock/react.d.ts +58 -0
- package/esm/mock/react.js +7 -0
- package/esm/mock/react.js.map +1 -0
- package/esm/react/index.js +2 -0
- package/esm/react/index.js.map +1 -0
- package/esm/react/react.d.ts +102 -0
- package/esm/react/react.js +221 -0
- package/esm/react/react.js.map +1 -0
- package/esm/tools/Deferred.d.ts +14 -0
- package/esm/tools/Deferred.js +23 -0
- package/esm/tools/Deferred.js.map +1 -0
- package/esm/tools/EphemeralSessionStorage.d.ts +12 -0
- package/{src/tools/EphemeralSessionStorage.ts → esm/tools/EphemeralSessionStorage.js} +30 -112
- package/esm/tools/EphemeralSessionStorage.js.map +1 -0
- package/esm/tools/Evt.d.ts +11 -0
- package/{src/tools/Evt.ts → esm/tools/Evt.js} +7 -25
- package/esm/tools/Evt.js.map +1 -0
- package/esm/tools/StatefulEvt.d.ts +12 -0
- package/esm/tools/StatefulEvt.js +21 -0
- package/esm/tools/StatefulEvt.js.map +1 -0
- package/esm/tools/ValueOrAsyncGetter.js +2 -0
- package/esm/tools/ValueOrAsyncGetter.js.map +1 -0
- package/esm/tools/asymmetricEncryption.d.ts +18 -0
- package/esm/tools/asymmetricEncryption.js +85 -0
- package/esm/tools/asymmetricEncryption.js.map +1 -0
- package/esm/tools/base64.d.ts +2 -0
- package/{src/tools/base64.ts → esm/tools/base64.js} +3 -3
- package/esm/tools/base64.js.map +1 -0
- package/esm/tools/createObjectThatThrowsIfAccessed.d.ts +8 -0
- package/{src/tools/createObjectThatThrowsIfAccessed.ts → esm/tools/createObjectThatThrowsIfAccessed.js} +7 -18
- package/esm/tools/createObjectThatThrowsIfAccessed.js.map +1 -0
- package/esm/tools/decodeJwt.d.ts +25 -0
- package/esm/tools/decodeJwt.js +60 -0
- package/esm/tools/decodeJwt.js.map +1 -0
- package/esm/tools/generateUrlSafeRandom.d.ts +3 -0
- package/{src/tools/generateUrlSafeRandom.ts → esm/tools/generateUrlSafeRandom.js} +5 -8
- package/esm/tools/generateUrlSafeRandom.js.map +1 -0
- package/esm/tools/getDownlinkAndRtt.d.ts +4 -0
- package/{src/tools/getDownlinkAndRtt.ts → esm/tools/getDownlinkAndRtt.js} +6 -10
- package/esm/tools/getDownlinkAndRtt.js.map +1 -0
- package/esm/tools/getIsOnline.d.ts +7 -0
- package/{src/tools/getIsOnline.ts → esm/tools/getIsOnline.js} +3 -9
- package/esm/tools/getIsOnline.js.map +1 -0
- package/esm/tools/getIsValidRemoteJson.d.ts +1 -0
- package/esm/tools/getIsValidRemoteJson.js +15 -0
- package/esm/tools/getIsValidRemoteJson.js.map +1 -0
- package/esm/tools/getPrUserInteraction.d.ts +4 -0
- package/{src/tools/getPrUserInteraction.ts → esm/tools/getPrUserInteraction.js} +2 -6
- package/esm/tools/getPrUserInteraction.js.map +1 -0
- package/esm/tools/getUserEnvironmentInfo.d.ts +1 -0
- package/esm/tools/getUserEnvironmentInfo.js +50 -0
- package/esm/tools/getUserEnvironmentInfo.js.map +1 -0
- package/esm/tools/haveSharedParentDomain.d.ts +4 -0
- package/{src/tools/haveSharedParentDomain.ts → esm/tools/haveSharedParentDomain.js} +3 -5
- package/esm/tools/haveSharedParentDomain.js.map +1 -0
- package/esm/tools/isDev.d.ts +1 -0
- package/{src/tools/isDev.ts → esm/tools/isDev.js} +5 -12
- package/esm/tools/isDev.js.map +1 -0
- package/esm/tools/parseKeycloakIssuerUri.d.ts +30 -0
- package/{src/tools/parseKeycloakIssuerUri.ts → esm/tools/parseKeycloakIssuerUri.js} +2 -18
- package/esm/tools/parseKeycloakIssuerUri.js.map +1 -0
- package/esm/tools/readExpirationTimeInJwt.d.ts +1 -0
- package/{src/tools/readExpirationTimeInJwt.ts → esm/tools/readExpirationTimeInJwt.js} +6 -7
- package/esm/tools/readExpirationTimeInJwt.js.map +1 -0
- package/esm/tools/startCountdown.d.ts +11 -0
- package/{src/tools/startCountdown.ts → esm/tools/startCountdown.js} +6 -17
- package/esm/tools/startCountdown.js.map +1 -0
- package/esm/tools/subscribeToUserInteraction.d.ts +6 -0
- package/{src/tools/subscribeToUserInteraction.ts → esm/tools/subscribeToUserInteraction.js} +4 -13
- package/esm/tools/subscribeToUserInteraction.js.map +1 -0
- package/esm/tools/toFullyQualifiedUrl.d.ts +10 -0
- package/{src/tools/toFullyQualifiedUrl.ts → esm/tools/toFullyQualifiedUrl.js} +7 -25
- package/esm/tools/toFullyQualifiedUrl.js.map +1 -0
- package/esm/tools/toHumanReadableDuration.d.ts +1 -0
- package/{src/tools/toHumanReadableDuration.ts → esm/tools/toHumanReadableDuration.js} +8 -5
- package/esm/tools/toHumanReadableDuration.js.map +1 -0
- package/esm/tools/urlSearchParams.d.ts +19 -0
- package/{src/tools/urlSearchParams.ts → esm/tools/urlSearchParams.js} +24 -70
- package/esm/tools/urlSearchParams.js.map +1 -0
- package/esm/tools/workerTimers.d.ts +5 -0
- package/{src/tools/workerTimers.ts → esm/tools/workerTimers.js} +7 -27
- package/esm/tools/workerTimers.js.map +1 -0
- package/esm/vendor/frontend/oidc-client-ts.js +3636 -0
- package/esm/vendor/frontend/tsafe.js +1 -0
- package/esm/vendor/frontend/worker-timers.js +1 -0
- package/index.js.map +1 -1
- package/keycloak/index.js.map +1 -1
- package/keycloak/isKeycloak.js.map +1 -1
- package/keycloak/keycloak-js/Keycloak.js.map +1 -1
- package/keycloak/keycloak-js/index.js.map +1 -1
- package/keycloak/keycloak-js/types.js.map +1 -1
- package/keycloak/keycloakIssuerUriParsed.js.map +1 -1
- package/keycloak/keycloakUtils.js.map +1 -1
- package/keycloak-js.js.map +1 -1
- package/mock/index.js.map +1 -1
- package/mock/oidc.js.map +1 -1
- package/mock/react.js.map +1 -1
- package/package.json +74 -328
- package/react/index.js.map +1 -1
- package/react/react.js.map +1 -1
- package/tools/Deferred.js.map +1 -1
- package/tools/EphemeralSessionStorage.js.map +1 -1
- package/tools/Evt.js.map +1 -1
- package/tools/StatefulEvt.js.map +1 -1
- package/tools/ValueOrAsyncGetter.js.map +1 -1
- package/tools/asymmetricEncryption.js.map +1 -1
- package/tools/base64.js.map +1 -1
- package/tools/createObjectThatThrowsIfAccessed.js.map +1 -1
- package/tools/decodeJwt.js.map +1 -1
- package/tools/generateUrlSafeRandom.js.map +1 -1
- package/tools/getDownlinkAndRtt.js.map +1 -1
- package/tools/getIsOnline.js.map +1 -1
- package/tools/getIsValidRemoteJson.js.map +1 -1
- package/tools/getPrUserInteraction.js.map +1 -1
- package/tools/getUserEnvironmentInfo.js.map +1 -1
- package/tools/haveSharedParentDomain.js.map +1 -1
- package/tools/isDev.js.map +1 -1
- package/tools/parseKeycloakIssuerUri.js.map +1 -1
- package/tools/readExpirationTimeInJwt.js.map +1 -1
- package/tools/startCountdown.js.map +1 -1
- package/tools/subscribeToUserInteraction.js.map +1 -1
- package/tools/toFullyQualifiedUrl.js.map +1 -1
- package/tools/toHumanReadableDuration.js.map +1 -1
- package/tools/urlSearchParams.js.map +1 -1
- package/tools/workerTimers.js.map +1 -1
- package/LICENSE +0 -21
- package/README.md +0 -185
- package/src/backend.ts +0 -391
- package/src/core/Oidc.ts +0 -140
- package/src/core/StateData.ts +0 -118
- package/src/core/configId.ts +0 -3
- package/src/core/loginSilent.ts +0 -209
- package/src/core/oidcClientTsUserToTokens.ts +0 -229
- package/src/core/persistedAuthState.ts +0 -122
- package/src/keycloak/index.ts +0 -8
- package/src/keycloak/keycloakUtils.ts +0 -90
- package/src/mock/react.tsx +0 -11
- package/src/react/react.tsx +0 -476
- package/src/tools/Deferred.ts +0 -39
- package/src/tools/StatefulEvt.ts +0 -38
- package/src/tools/asymmetricEncryption.ts +0 -184
- package/src/tools/decodeJwt.ts +0 -95
- package/src/tools/getIsValidRemoteJson.ts +0 -18
- package/src/tools/getUserEnvironmentInfo.ts +0 -42
- package/src/vendor/backend/evt.ts +0 -2
- package/src/vendor/backend/jsonwebtoken.ts +0 -1
- package/src/vendor/backend/node-fetch.ts +0 -2
- package/src/vendor/backend/node-jose.ts +0 -1
- package/src/vendor/backend/tsafe.ts +0 -5
- package/src/vendor/backend/zod.ts +0 -1
- /package/{src/core/index.ts → esm/core/index.d.ts} +0 -0
- /package/{src/index.ts → esm/index.d.ts} +0 -0
- /package/{src/keycloak/keycloak-js/index.ts → esm/keycloak/keycloak-js/index.d.ts} +0 -0
- /package/{src/keycloak-js.ts → esm/keycloak-js.d.ts} +0 -0
- /package/{src/mock/index.ts → esm/mock/index.d.ts} +0 -0
- /package/{src/react/index.ts → esm/react/index.d.ts} +0 -0
- /package/{src/tools/ValueOrAsyncGetter.ts → esm/tools/ValueOrAsyncGetter.d.ts} +0 -0
- /package/{src/vendor/frontend/oidc-client-ts.ts → esm/vendor/frontend/oidc-client-ts.d.ts} +0 -0
- /package/{src/vendor/frontend/tsafe.ts → esm/vendor/frontend/tsafe.d.ts} +0 -0
- /package/{src/vendor/frontend/worker-timers.ts → esm/vendor/frontend/worker-timers.d.ts} +0 -0
|
@@ -1,75 +1,49 @@
|
|
|
1
|
-
import {
|
|
2
|
-
getStateData,
|
|
3
|
-
markStateDataAsProcessedByCallback,
|
|
4
|
-
getIsStatQueryParamValue,
|
|
5
|
-
type StateData
|
|
6
|
-
} from "./StateData";
|
|
1
|
+
import { getStateData, markStateDataAsProcessedByCallback, getIsStatQueryParamValue } from "./StateData";
|
|
7
2
|
import { assert, id } from "../vendor/frontend/tsafe";
|
|
8
|
-
import type { AuthResponse } from "./AuthResponse";
|
|
9
3
|
import { initialLocationHref } from "./initialLocationHref";
|
|
10
4
|
import { encryptAuthResponse } from "./iframeMessageProtection";
|
|
11
|
-
|
|
12
5
|
const globalContext = {
|
|
13
|
-
previousCall: id
|
|
6
|
+
previousCall: id(undefined)
|
|
14
7
|
};
|
|
15
|
-
|
|
16
|
-
export function handleOidcCallback(): { isHandled: boolean } {
|
|
8
|
+
export function handleOidcCallback() {
|
|
17
9
|
if (globalContext.previousCall !== undefined) {
|
|
18
10
|
return globalContext.previousCall;
|
|
19
11
|
}
|
|
20
|
-
|
|
21
12
|
return (globalContext.previousCall = handleOidcCallback_nonMemoized());
|
|
22
13
|
}
|
|
23
|
-
|
|
24
|
-
function handleOidcCallback_nonMemoized(): { isHandled: boolean } {
|
|
14
|
+
function handleOidcCallback_nonMemoized() {
|
|
25
15
|
const location_urlObj = new URL(initialLocationHref);
|
|
26
|
-
|
|
27
16
|
const stateUrlParamValue_wrap = (() => {
|
|
28
17
|
fragment: {
|
|
29
|
-
const stateUrlParamValue = new URLSearchParams(location_urlObj.hash.replace(/^#/, "")).get(
|
|
30
|
-
"state"
|
|
31
|
-
);
|
|
32
|
-
|
|
18
|
+
const stateUrlParamValue = new URLSearchParams(location_urlObj.hash.replace(/^#/, "")).get("state");
|
|
33
19
|
if (stateUrlParamValue === null) {
|
|
34
20
|
break fragment;
|
|
35
21
|
}
|
|
36
|
-
|
|
37
22
|
if (!getIsStatQueryParamValue({ maybeStateUrlParamValue: stateUrlParamValue })) {
|
|
38
23
|
break fragment;
|
|
39
24
|
}
|
|
40
|
-
|
|
41
25
|
return { stateUrlParamValue, isFragment: true };
|
|
42
26
|
}
|
|
43
|
-
|
|
44
27
|
query: {
|
|
45
28
|
const stateUrlParamValue = location_urlObj.searchParams.get("state");
|
|
46
|
-
|
|
47
29
|
if (stateUrlParamValue === null) {
|
|
48
30
|
break query;
|
|
49
31
|
}
|
|
50
|
-
|
|
51
32
|
if (!getIsStatQueryParamValue({ maybeStateUrlParamValue: stateUrlParamValue })) {
|
|
52
33
|
break query;
|
|
53
34
|
}
|
|
54
|
-
|
|
55
|
-
if (
|
|
56
|
-
location_urlObj.searchParams.get("client_id") !== null &&
|
|
35
|
+
if (location_urlObj.searchParams.get("client_id") !== null &&
|
|
57
36
|
location_urlObj.searchParams.get("response_type") !== null &&
|
|
58
|
-
location_urlObj.searchParams.get("redirect_uri") !== null
|
|
59
|
-
) {
|
|
37
|
+
location_urlObj.searchParams.get("redirect_uri") !== null) {
|
|
60
38
|
// NOTE: We are probably in a Keycloakify theme and oidc-spa was loaded by mistake.
|
|
61
39
|
break query;
|
|
62
40
|
}
|
|
63
|
-
|
|
64
41
|
return { stateUrlParamValue, isFragment: false };
|
|
65
42
|
}
|
|
66
|
-
|
|
67
43
|
return undefined;
|
|
68
44
|
})();
|
|
69
|
-
|
|
70
45
|
if (stateUrlParamValue_wrap === undefined) {
|
|
71
46
|
const backForwardTracker = readBackForwardTracker();
|
|
72
|
-
|
|
73
47
|
if (backForwardTracker !== undefined) {
|
|
74
48
|
writeBackForwardTracker({
|
|
75
49
|
backForwardTracker: {
|
|
@@ -78,36 +52,25 @@ function handleOidcCallback_nonMemoized(): { isHandled: boolean } {
|
|
|
78
52
|
}
|
|
79
53
|
});
|
|
80
54
|
}
|
|
81
|
-
|
|
82
55
|
return { isHandled: false };
|
|
83
56
|
}
|
|
84
|
-
|
|
85
57
|
const isHandled = true;
|
|
86
|
-
|
|
87
58
|
const { stateUrlParamValue, isFragment } = stateUrlParamValue_wrap;
|
|
88
|
-
|
|
89
|
-
console.
|
|
90
|
-
console.
|
|
91
|
-
console.
|
|
92
|
-
console.debug = () => {};
|
|
93
|
-
|
|
59
|
+
console.log = () => { };
|
|
60
|
+
console.warn = () => { };
|
|
61
|
+
console.error = () => { };
|
|
62
|
+
console.debug = () => { };
|
|
94
63
|
const stateData = getStateData({ stateUrlParamValue });
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
(stateData.context === "redirect" && stateData.hasBeenProcessedByCallback)
|
|
99
|
-
) {
|
|
100
|
-
const historyMethod: "back" | "forward" = (() => {
|
|
64
|
+
if (stateData === undefined ||
|
|
65
|
+
(stateData.context === "redirect" && stateData.hasBeenProcessedByCallback)) {
|
|
66
|
+
const historyMethod = (() => {
|
|
101
67
|
const backForwardTracker = readBackForwardTracker();
|
|
102
|
-
|
|
103
68
|
if (backForwardTracker === undefined) {
|
|
104
69
|
return "back";
|
|
105
70
|
}
|
|
106
|
-
|
|
107
71
|
if (!backForwardTracker.hasExitedCallback) {
|
|
108
72
|
return backForwardTracker.previousHistoryMethod;
|
|
109
73
|
}
|
|
110
|
-
|
|
111
74
|
switch (backForwardTracker.previousHistoryMethod) {
|
|
112
75
|
case "back":
|
|
113
76
|
return "forward";
|
|
@@ -115,19 +78,15 @@ function handleOidcCallback_nonMemoized(): { isHandled: boolean } {
|
|
|
115
78
|
return "back";
|
|
116
79
|
}
|
|
117
80
|
})();
|
|
118
|
-
|
|
119
81
|
writeBackForwardTracker({
|
|
120
82
|
backForwardTracker: {
|
|
121
83
|
previousHistoryMethod: historyMethod,
|
|
122
84
|
hasExitedCallback: false
|
|
123
85
|
}
|
|
124
86
|
});
|
|
125
|
-
|
|
126
87
|
setTimeout(() => {
|
|
127
88
|
reloadOnBfCacheNavigation();
|
|
128
|
-
|
|
129
89
|
window.history[historyMethod]();
|
|
130
|
-
|
|
131
90
|
// NOTE: This is a "better than nothing" approach.
|
|
132
91
|
// Under some circumstances it's possible to get stuck on this url
|
|
133
92
|
// if there is no "next" page in the history for example, navigating
|
|
@@ -138,20 +97,15 @@ function handleOidcCallback_nonMemoized(): { isHandled: boolean } {
|
|
|
138
97
|
window.location.href = `${protocol}//${host}${pathname}${hash}`;
|
|
139
98
|
}, 350);
|
|
140
99
|
}, 0);
|
|
141
|
-
|
|
142
100
|
return { isHandled };
|
|
143
101
|
}
|
|
144
|
-
|
|
145
|
-
const authResponse: AuthResponse = { state: "" };
|
|
146
|
-
|
|
102
|
+
const authResponse = { state: "" };
|
|
147
103
|
for (const [key, value] of isFragment
|
|
148
104
|
? new URLSearchParams(location_urlObj.hash.replace(/^#/, ""))
|
|
149
105
|
: location_urlObj.searchParams) {
|
|
150
106
|
authResponse[key] = value;
|
|
151
107
|
}
|
|
152
|
-
|
|
153
108
|
assert(authResponse.state !== "", "063965");
|
|
154
|
-
|
|
155
109
|
switch (stateData.context) {
|
|
156
110
|
case "iframe":
|
|
157
111
|
encryptAuthResponse({
|
|
@@ -170,27 +124,17 @@ function handleOidcCallback_nonMemoized(): { isHandled: boolean } {
|
|
|
170
124
|
if (stateData.action === "login" && authResponse.error === "consent_required") {
|
|
171
125
|
return stateData.redirectUrl_consentRequiredCase;
|
|
172
126
|
}
|
|
173
|
-
|
|
174
127
|
return stateData.redirectUrl;
|
|
175
128
|
})();
|
|
176
|
-
|
|
177
129
|
location.href = href;
|
|
178
130
|
}, 0);
|
|
179
131
|
break;
|
|
180
132
|
}
|
|
181
|
-
|
|
182
133
|
return { isHandled };
|
|
183
134
|
}
|
|
184
|
-
|
|
185
|
-
const {
|
|
186
|
-
readRedirectAuthResponses,
|
|
187
|
-
writeRedirectAuthResponses,
|
|
188
|
-
moveRedirectAuthResponseFromSessionStorageToMemory
|
|
189
|
-
} = (() => {
|
|
135
|
+
const { readRedirectAuthResponses, writeRedirectAuthResponses, moveRedirectAuthResponseFromSessionStorageToMemory } = (() => {
|
|
190
136
|
const AUTH_RESPONSES_KEY = "oidc-spa:authResponses";
|
|
191
|
-
|
|
192
|
-
let authResponses_movedToMemoryFromSessionStorage: AuthResponse[] | undefined = undefined;
|
|
193
|
-
|
|
137
|
+
let authResponses_movedToMemoryFromSessionStorage = undefined;
|
|
194
138
|
// NOTE: Here we note that we can re-write on session storage some auth response
|
|
195
139
|
// after earlyInit in retrieveRedirectAuthResponseAndStateData
|
|
196
140
|
// In situation where there are more than one client in the same app and we can't use iframe,
|
|
@@ -198,124 +142,84 @@ const {
|
|
|
198
142
|
// In most case it won't happen if the init sequence is deterministic but the client
|
|
199
143
|
// can be instantiated at any time really.
|
|
200
144
|
// So the move to memory of the response is fully effective only when theres one client.
|
|
201
|
-
function writeRedirectAuthResponses(params
|
|
145
|
+
function writeRedirectAuthResponses(params) {
|
|
202
146
|
const { authResponses } = params;
|
|
203
|
-
|
|
204
147
|
authResponses_movedToMemoryFromSessionStorage = undefined;
|
|
205
|
-
|
|
206
148
|
if (authResponses.length === 0) {
|
|
207
149
|
sessionStorage.removeItem(AUTH_RESPONSES_KEY);
|
|
208
150
|
return;
|
|
209
151
|
}
|
|
210
152
|
sessionStorage.setItem(AUTH_RESPONSES_KEY, JSON.stringify(authResponses));
|
|
211
153
|
}
|
|
212
|
-
|
|
213
|
-
function readRedirectAuthResponses(): AuthResponse[] {
|
|
154
|
+
function readRedirectAuthResponses() {
|
|
214
155
|
if (authResponses_movedToMemoryFromSessionStorage !== undefined) {
|
|
215
156
|
return authResponses_movedToMemoryFromSessionStorage;
|
|
216
157
|
}
|
|
217
|
-
|
|
218
158
|
const raw = sessionStorage.getItem(AUTH_RESPONSES_KEY);
|
|
219
|
-
|
|
220
159
|
if (raw === null) {
|
|
221
160
|
return [];
|
|
222
161
|
}
|
|
223
|
-
|
|
224
162
|
return JSON.parse(raw);
|
|
225
163
|
}
|
|
226
|
-
|
|
227
164
|
function moveRedirectAuthResponseFromSessionStorageToMemory() {
|
|
228
165
|
const authResponses = readRedirectAuthResponses();
|
|
229
|
-
|
|
230
166
|
writeRedirectAuthResponses({ authResponses: [] });
|
|
231
|
-
|
|
232
167
|
authResponses_movedToMemoryFromSessionStorage = authResponses;
|
|
233
168
|
}
|
|
234
|
-
|
|
235
169
|
return {
|
|
236
170
|
writeRedirectAuthResponses,
|
|
237
171
|
readRedirectAuthResponses,
|
|
238
172
|
moveRedirectAuthResponseFromSessionStorageToMemory
|
|
239
173
|
};
|
|
240
174
|
})();
|
|
241
|
-
|
|
242
175
|
export { moveRedirectAuthResponseFromSessionStorageToMemory };
|
|
243
|
-
|
|
244
|
-
export function retrieveRedirectAuthResponseAndStateData(params: {
|
|
245
|
-
configId: string;
|
|
246
|
-
}): { authResponse: AuthResponse; stateData: StateData.Redirect } | undefined {
|
|
176
|
+
export function retrieveRedirectAuthResponseAndStateData(params) {
|
|
247
177
|
const { configId } = params;
|
|
248
|
-
|
|
249
178
|
const authResponses = readRedirectAuthResponses();
|
|
250
|
-
|
|
251
|
-
let authResponseAndStateData:
|
|
252
|
-
| { authResponse: AuthResponse; stateData: StateData.Redirect }
|
|
253
|
-
| undefined = undefined;
|
|
254
|
-
|
|
179
|
+
let authResponseAndStateData = undefined;
|
|
255
180
|
for (const authResponse of [...authResponses]) {
|
|
256
181
|
const stateData = getStateData({ stateUrlParamValue: authResponse.state });
|
|
257
|
-
|
|
258
182
|
if (stateData === undefined) {
|
|
259
183
|
// NOTE: We do not understand how this can happen but it can.
|
|
260
184
|
authResponses.splice(authResponses.indexOf(authResponse), 1);
|
|
261
185
|
continue;
|
|
262
186
|
}
|
|
263
|
-
|
|
264
187
|
assert(stateData.context === "redirect", "474728");
|
|
265
|
-
|
|
266
188
|
if (stateData.configId !== configId) {
|
|
267
189
|
continue;
|
|
268
190
|
}
|
|
269
|
-
|
|
270
191
|
authResponses.splice(authResponses.indexOf(authResponse), 1);
|
|
271
|
-
|
|
272
192
|
authResponseAndStateData = { authResponse, stateData };
|
|
273
193
|
}
|
|
274
|
-
|
|
275
194
|
writeRedirectAuthResponses({ authResponses });
|
|
276
|
-
|
|
277
195
|
return authResponseAndStateData;
|
|
278
196
|
}
|
|
279
|
-
|
|
280
197
|
function reloadOnBfCacheNavigation() {
|
|
281
198
|
const start = Date.now();
|
|
282
199
|
window.addEventListener("pageshow", () => {
|
|
283
200
|
const elapsed = Date.now() - start;
|
|
284
|
-
|
|
285
201
|
if (elapsed < 100) {
|
|
286
202
|
return;
|
|
287
203
|
}
|
|
288
204
|
location.reload();
|
|
289
205
|
});
|
|
290
206
|
}
|
|
291
|
-
|
|
292
207
|
const { writeBackForwardTracker, readBackForwardTracker, clearBackForwardTracker } = (() => {
|
|
293
208
|
const BACK_NAVIGATION_TRACKER_KEY = "oidc-spa:callback-back-forward-tracker";
|
|
294
|
-
|
|
295
|
-
type BackForwardTracker = {
|
|
296
|
-
previousHistoryMethod: "back" | "forward";
|
|
297
|
-
hasExitedCallback: boolean;
|
|
298
|
-
};
|
|
299
|
-
|
|
300
|
-
function writeBackForwardTracker(params: { backForwardTracker: BackForwardTracker }): void {
|
|
209
|
+
function writeBackForwardTracker(params) {
|
|
301
210
|
const { backForwardTracker } = params;
|
|
302
|
-
|
|
303
211
|
sessionStorage.setItem(BACK_NAVIGATION_TRACKER_KEY, JSON.stringify(backForwardTracker));
|
|
304
212
|
}
|
|
305
|
-
|
|
306
|
-
function readBackForwardTracker(): BackForwardTracker | undefined {
|
|
213
|
+
function readBackForwardTracker() {
|
|
307
214
|
const raw = sessionStorage.getItem(BACK_NAVIGATION_TRACKER_KEY);
|
|
308
|
-
|
|
309
215
|
if (raw === null) {
|
|
310
216
|
return undefined;
|
|
311
217
|
}
|
|
312
|
-
|
|
313
218
|
return JSON.parse(raw);
|
|
314
219
|
}
|
|
315
|
-
|
|
316
|
-
function clearBackForwardTracker(): void {
|
|
220
|
+
function clearBackForwardTracker() {
|
|
317
221
|
sessionStorage.removeItem(BACK_NAVIGATION_TRACKER_KEY);
|
|
318
222
|
}
|
|
319
|
-
|
|
320
223
|
return { writeBackForwardTracker, readBackForwardTracker, clearBackForwardTracker };
|
|
321
224
|
})();
|
|
225
|
+
//# sourceMappingURL=handleOidcCallback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handleOidcCallback.js","sourceRoot":"","sources":["../../../src/core/handleOidcCallback.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,YAAY,EACZ,kCAAkC,EAClC,wBAAwB,EAE3B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,MAAM,aAAa,GAAG;IAClB,YAAY,EAAE,EAAE,CAAqC,SAAS,CAAC;CAClE,CAAC;AAEF,MAAM,UAAU,kBAAkB;IAC9B,IAAI,aAAa,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QAC3C,OAAO,aAAa,CAAC,YAAY,CAAC;IACtC,CAAC;IAED,OAAO,CAAC,aAAa,CAAC,YAAY,GAAG,8BAA8B,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,8BAA8B;IACnC,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAErD,MAAM,uBAAuB,GAAG,CAAC,GAAG,EAAE;QAClC,QAAQ,EAAE,CAAC;YACP,MAAM,kBAAkB,GAAG,IAAI,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CACtF,OAAO,CACV,CAAC;YAEF,IAAI,kBAAkB,KAAK,IAAI,EAAE,CAAC;gBAC9B,MAAM,QAAQ,CAAC;YACnB,CAAC;YAED,IAAI,CAAC,wBAAwB,CAAC,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,CAAC,EAAE,CAAC;gBAC7E,MAAM,QAAQ,CAAC;YACnB,CAAC;YAED,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QACpD,CAAC;QAED,KAAK,EAAE,CAAC;YACJ,MAAM,kBAAkB,GAAG,eAAe,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAErE,IAAI,kBAAkB,KAAK,IAAI,EAAE,CAAC;gBAC9B,MAAM,KAAK,CAAC;YAChB,CAAC;YAED,IAAI,CAAC,wBAAwB,CAAC,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,CAAC,EAAE,CAAC;gBAC7E,MAAM,KAAK,CAAC;YAChB,CAAC;YAED,IACI,eAAe,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,IAAI;gBACtD,eAAe,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,IAAI;gBAC1D,eAAe,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,IAAI,EAC3D,CAAC;gBACC,mFAAmF;gBACnF,MAAM,KAAK,CAAC;YAChB,CAAC;YAED,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;QACrD,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC,CAAC,EAAE,CAAC;IAEL,IAAI,uBAAuB,KAAK,SAAS,EAAE,CAAC;QACxC,MAAM,kBAAkB,GAAG,sBAAsB,EAAE,CAAC;QAEpD,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;YACnC,uBAAuB,CAAC;gBACpB,kBAAkB,EAAE;oBAChB,GAAG,kBAAkB;oBACrB,iBAAiB,EAAE,IAAI;iBAC1B;aACJ,CAAC,CAAC;QACP,CAAC;QAED,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAChC,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC;IAEvB,MAAM,EAAE,kBAAkB,EAAE,UAAU,EAAE,GAAG,uBAAuB,CAAC;IAEnE,OAAO,CAAC,GAAG,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;IACvB,OAAO,CAAC,IAAI,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;IACxB,OAAO,CAAC,KAAK,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;IACzB,OAAO,CAAC,KAAK,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;IAEzB,MAAM,SAAS,GAAG,YAAY,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAEvD,IACI,SAAS,KAAK,SAAS;QACvB,CAAC,SAAS,CAAC,OAAO,KAAK,UAAU,IAAI,SAAS,CAAC,0BAA0B,CAAC,EAC5E,CAAC;QACC,MAAM,aAAa,GAAuB,CAAC,GAAG,EAAE;YAC5C,MAAM,kBAAkB,GAAG,sBAAsB,EAAE,CAAC;YAEpD,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;gBACnC,OAAO,MAAM,CAAC;YAClB,CAAC;YAED,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,CAAC;gBACxC,OAAO,kBAAkB,CAAC,qBAAqB,CAAC;YACpD,CAAC;YAED,QAAQ,kBAAkB,CAAC,qBAAqB,EAAE,CAAC;gBAC/C,KAAK,MAAM;oBACP,OAAO,SAAS,CAAC;gBACrB,KAAK,SAAS;oBACV,OAAO,MAAM,CAAC;YACtB,CAAC;QACL,CAAC,CAAC,EAAE,CAAC;QAEL,uBAAuB,CAAC;YACpB,kBAAkB,EAAE;gBAChB,qBAAqB,EAAE,aAAa;gBACpC,iBAAiB,EAAE,KAAK;aAC3B;SACJ,CAAC,CAAC;QAEH,UAAU,CAAC,GAAG,EAAE;YACZ,yBAAyB,EAAE,CAAC;YAE5B,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;YAEhC,kDAAkD;YAClD,kEAAkE;YAClE,oEAAoE;YACpE,0EAA0E;YAC1E,6EAA6E;YAC7E,UAAU,CAAC,GAAG,EAAE;gBACZ,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC;gBAC3D,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,QAAQ,KAAK,IAAI,GAAG,QAAQ,GAAG,IAAI,EAAE,CAAC;YACpE,CAAC,EAAE,GAAG,CAAC,CAAC;QACZ,CAAC,EAAE,CAAC,CAAC,CAAC;QAEN,OAAO,EAAE,SAAS,EAAE,CAAC;IACzB,CAAC;IAED,MAAM,YAAY,GAAiB,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAEjD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,UAAU;QACjC,CAAC,CAAC,IAAI,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC7D,CAAC,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;QACjC,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,KAAK,KAAK,EAAE,EAAE,QAAQ,CAAC,CAAC;IAE5C,QAAQ,SAAS,CAAC,OAAO,EAAE,CAAC;QACxB,KAAK,QAAQ;YACT,mBAAmB,CAAC;gBAChB,YAAY;aACf,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;YACzF,MAAM;QACV,KAAK,UAAU;YACX,kCAAkC,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAC3D,uBAAuB,EAAE,CAAC;YAC1B,0BAA0B,CAAC;gBACvB,aAAa,EAAE,CAAC,GAAG,yBAAyB,EAAE,EAAE,YAAY,CAAC;aAChE,CAAC,CAAC;YACH,yBAAyB,EAAE,CAAC;YAC5B,UAAU,CAAC,GAAG,EAAE;gBACZ,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE;oBACf,IAAI,SAAS,CAAC,MAAM,KAAK,OAAO,IAAI,YAAY,CAAC,KAAK,KAAK,kBAAkB,EAAE,CAAC;wBAC5E,OAAO,SAAS,CAAC,+BAA+B,CAAC;oBACrD,CAAC;oBAED,OAAO,SAAS,CAAC,WAAW,CAAC;gBACjC,CAAC,CAAC,EAAE,CAAC;gBAEL,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;YACzB,CAAC,EAAE,CAAC,CAAC,CAAC;YACN,MAAM;IACd,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,CAAC;AACzB,CAAC;AAED,MAAM,EACF,yBAAyB,EACzB,0BAA0B,EAC1B,kDAAkD,EACrD,GAAG,CAAC,GAAG,EAAE;IACN,MAAM,kBAAkB,GAAG,wBAAwB,CAAC;IAEpD,IAAI,6CAA6C,GAA+B,SAAS,CAAC;IAE1F,gFAAgF;IAChF,8DAA8D;IAC9D,6FAA6F;IAC7F,uFAAuF;IACvF,oFAAoF;IACpF,0CAA0C;IAC1C,wFAAwF;IACxF,SAAS,0BAA0B,CAAC,MAAyC;QACzE,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC;QAEjC,6CAA6C,GAAG,SAAS,CAAC;QAE1D,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,cAAc,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;YAC9C,OAAO;QACX,CAAC;QACD,cAAc,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,SAAS,yBAAyB;QAC9B,IAAI,6CAA6C,KAAK,SAAS,EAAE,CAAC;YAC9D,OAAO,6CAA6C,CAAC;QACzD,CAAC;QAED,MAAM,GAAG,GAAG,cAAc,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAEvD,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACf,OAAO,EAAE,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,SAAS,kDAAkD;QACvD,MAAM,aAAa,GAAG,yBAAyB,EAAE,CAAC;QAElD,0BAA0B,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC;QAElD,6CAA6C,GAAG,aAAa,CAAC;IAClE,CAAC;IAED,OAAO;QACH,0BAA0B;QAC1B,yBAAyB;QACzB,kDAAkD;KACrD,CAAC;AACN,CAAC,CAAC,EAAE,CAAC;AAEL,OAAO,EAAE,kDAAkD,EAAE,CAAC;AAE9D,MAAM,UAAU,wCAAwC,CAAC,MAExD;IACG,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAE5B,MAAM,aAAa,GAAG,yBAAyB,EAAE,CAAC;IAElD,IAAI,wBAAwB,GAEV,SAAS,CAAC;IAE5B,KAAK,MAAM,YAAY,IAAI,CAAC,GAAG,aAAa,CAAC,EAAE,CAAC;QAC5C,MAAM,SAAS,GAAG,YAAY,CAAC,EAAE,kBAAkB,EAAE,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC;QAE3E,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC1B,6DAA6D;YAC7D,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7D,SAAS;QACb,CAAC;QAED,MAAM,CAAC,SAAS,CAAC,OAAO,KAAK,UAAU,EAAE,QAAQ,CAAC,CAAC;QAEnD,IAAI,SAAS,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAClC,SAAS;QACb,CAAC;QAED,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;QAE7D,wBAAwB,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;IAC3D,CAAC;IAED,0BAA0B,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;IAE9C,OAAO,wBAAwB,CAAC;AACpC,CAAC;AAED,SAAS,yBAAyB;IAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,GAAG,EAAE;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;QAEnC,IAAI,OAAO,GAAG,GAAG,EAAE,CAAC;YAChB,OAAO;QACX,CAAC;QACD,QAAQ,CAAC,MAAM,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,GAAG,CAAC,GAAG,EAAE;IACvF,MAAM,2BAA2B,GAAG,wCAAwC,CAAC;IAO7E,SAAS,uBAAuB,CAAC,MAAkD;QAC/E,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAAC;QAEtC,cAAc,CAAC,OAAO,CAAC,2BAA2B,EAAE,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC5F,CAAC;IAED,SAAS,sBAAsB;QAC3B,MAAM,GAAG,GAAG,cAAc,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;QAEhE,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACf,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,SAAS,uBAAuB;QAC5B,cAAc,CAAC,UAAU,CAAC,2BAA2B,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,CAAC;AACxF,CAAC,CAAC,EAAE,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type AuthResponse } from "./AuthResponse";
|
|
2
|
+
export declare function preventSessionStorageSetItemOfPublicKeyByThirdParty(): void;
|
|
3
|
+
export declare function initIframeMessageProtection(params: {
|
|
4
|
+
stateUrlParamValue: string;
|
|
5
|
+
}): Promise<{
|
|
6
|
+
getIsEncryptedAuthResponse: (params: {
|
|
7
|
+
message: unknown;
|
|
8
|
+
}) => boolean;
|
|
9
|
+
decodeEncryptedAuth: (params: {
|
|
10
|
+
encryptedAuthResponse: string;
|
|
11
|
+
}) => Promise<{
|
|
12
|
+
authResponse: AuthResponse;
|
|
13
|
+
}>;
|
|
14
|
+
clearSessionStoragePublicKey: () => void;
|
|
15
|
+
}>;
|
|
16
|
+
export declare function encryptAuthResponse(params: {
|
|
17
|
+
authResponse: AuthResponse;
|
|
18
|
+
}): Promise<{
|
|
19
|
+
encryptedMessage: string;
|
|
20
|
+
}>;
|
|
@@ -1,32 +1,21 @@
|
|
|
1
1
|
import { assert } from "../vendor/frontend/tsafe";
|
|
2
2
|
import { asymmetricEncrypt, asymmetricDecrypt, generateKeys } from "../tools/asymmetricEncryption";
|
|
3
|
-
import { type AuthResponse } from "./AuthResponse";
|
|
4
|
-
|
|
5
3
|
const sessionStorage_original = window.sessionStorage;
|
|
6
4
|
const setItem_real = Storage.prototype.setItem;
|
|
7
|
-
|
|
8
5
|
const SESSION_STORAGE_PREFIX = "oidc-spa_iframe_authResponse_publicKey_";
|
|
9
|
-
|
|
10
6
|
export function preventSessionStorageSetItemOfPublicKeyByThirdParty() {
|
|
11
|
-
const setItem_protected = function setItem(
|
|
7
|
+
const setItem_protected = function setItem(key, value) {
|
|
12
8
|
if (this !== sessionStorage_original) {
|
|
13
9
|
return setItem_real.call(this, key, value);
|
|
14
10
|
}
|
|
15
|
-
|
|
16
11
|
if (key.startsWith(SESSION_STORAGE_PREFIX)) {
|
|
17
|
-
throw new Error(
|
|
18
|
-
"Attack prevented by oidc-spa. You have malicious code running in your system"
|
|
19
|
-
);
|
|
12
|
+
throw new Error("Attack prevented by oidc-spa. You have malicious code running in your system");
|
|
20
13
|
}
|
|
21
|
-
|
|
22
14
|
return setItem_real.call(sessionStorage_original, key, value);
|
|
23
15
|
};
|
|
24
|
-
|
|
25
16
|
{
|
|
26
17
|
const pd = Object.getOwnPropertyDescriptor(Storage.prototype, "setItem");
|
|
27
|
-
|
|
28
18
|
assert(pd !== undefined);
|
|
29
|
-
|
|
30
19
|
Object.defineProperty(Storage.prototype, "setItem", {
|
|
31
20
|
enumerable: pd.enumerable,
|
|
32
21
|
writable: pd.writable,
|
|
@@ -34,67 +23,43 @@ export function preventSessionStorageSetItemOfPublicKeyByThirdParty() {
|
|
|
34
23
|
});
|
|
35
24
|
}
|
|
36
25
|
}
|
|
37
|
-
|
|
38
26
|
const ENCRYPTED_AUTH_RESPONSES_PREFIX = "oidc-spa_encrypted_authResponse_";
|
|
39
|
-
|
|
40
|
-
function getSessionStorageKey(params: { stateUrlParamValue: string }) {
|
|
27
|
+
function getSessionStorageKey(params) {
|
|
41
28
|
const { stateUrlParamValue } = params;
|
|
42
|
-
|
|
43
29
|
return `${SESSION_STORAGE_PREFIX}${stateUrlParamValue}`;
|
|
44
30
|
}
|
|
45
|
-
|
|
46
|
-
export async function initIframeMessageProtection(params: { stateUrlParamValue: string }) {
|
|
31
|
+
export async function initIframeMessageProtection(params) {
|
|
47
32
|
const { stateUrlParamValue } = params;
|
|
48
|
-
|
|
49
33
|
const { publicKey, privateKey } = await generateKeys();
|
|
50
|
-
|
|
51
34
|
const sessionStorageKey = getSessionStorageKey({ stateUrlParamValue });
|
|
52
|
-
|
|
53
35
|
setItem_real.call(sessionStorage, sessionStorageKey, publicKey);
|
|
54
|
-
|
|
55
|
-
function getIsEncryptedAuthResponse(params: { message: unknown }): boolean {
|
|
36
|
+
function getIsEncryptedAuthResponse(params) {
|
|
56
37
|
const { message } = params;
|
|
57
|
-
|
|
58
38
|
return typeof message === "string" && message.startsWith(ENCRYPTED_AUTH_RESPONSES_PREFIX);
|
|
59
39
|
}
|
|
60
|
-
|
|
61
|
-
async function decodeEncryptedAuth(params: {
|
|
62
|
-
encryptedAuthResponse: string;
|
|
63
|
-
}): Promise<{ authResponse: AuthResponse }> {
|
|
40
|
+
async function decodeEncryptedAuth(params) {
|
|
64
41
|
const { encryptedAuthResponse } = params;
|
|
65
|
-
|
|
66
42
|
const { message: authResponse_str } = await asymmetricDecrypt({
|
|
67
43
|
encryptedMessage: encryptedAuthResponse.slice(ENCRYPTED_AUTH_RESPONSES_PREFIX.length),
|
|
68
44
|
privateKey
|
|
69
45
|
});
|
|
70
|
-
|
|
71
|
-
const authResponse: AuthResponse = JSON.parse(authResponse_str);
|
|
72
|
-
|
|
46
|
+
const authResponse = JSON.parse(authResponse_str);
|
|
73
47
|
return { authResponse };
|
|
74
48
|
}
|
|
75
|
-
|
|
76
49
|
function clearSessionStoragePublicKey() {
|
|
77
50
|
sessionStorage.removeItem(sessionStorageKey);
|
|
78
51
|
}
|
|
79
|
-
|
|
80
52
|
return { getIsEncryptedAuthResponse, decodeEncryptedAuth, clearSessionStoragePublicKey };
|
|
81
53
|
}
|
|
82
|
-
|
|
83
|
-
export async function encryptAuthResponse(params: { authResponse: AuthResponse }) {
|
|
54
|
+
export async function encryptAuthResponse(params) {
|
|
84
55
|
const { authResponse } = params;
|
|
85
|
-
|
|
86
|
-
const publicKey = sessionStorage.getItem(
|
|
87
|
-
getSessionStorageKey({ stateUrlParamValue: authResponse.state })
|
|
88
|
-
);
|
|
89
|
-
|
|
56
|
+
const publicKey = sessionStorage.getItem(getSessionStorageKey({ stateUrlParamValue: authResponse.state }));
|
|
90
57
|
assert(publicKey !== null, "2293302");
|
|
91
|
-
|
|
92
58
|
const { encryptedMessage: encryptedMessage_withoutPrefix } = await asymmetricEncrypt({
|
|
93
59
|
publicKey,
|
|
94
60
|
message: JSON.stringify(authResponse)
|
|
95
61
|
});
|
|
96
|
-
|
|
97
62
|
const encryptedMessage = `${ENCRYPTED_AUTH_RESPONSES_PREFIX}${encryptedMessage_withoutPrefix}`;
|
|
98
|
-
|
|
99
63
|
return { encryptedMessage };
|
|
100
64
|
}
|
|
65
|
+
//# sourceMappingURL=iframeMessageProtection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iframeMessageProtection.js","sourceRoot":"","sources":["../../../src/core/iframeMessageProtection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAGnG,MAAM,uBAAuB,GAAG,MAAM,CAAC,cAAc,CAAC;AACtD,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC;AAE/C,MAAM,sBAAsB,GAAG,yCAAyC,CAAC;AAEzE,MAAM,UAAU,mDAAmD;IAC/D,MAAM,iBAAiB,GAAG,SAAS,OAAO,CAAY,GAAW,EAAE,KAAa;QAC5E,IAAI,IAAI,KAAK,uBAAuB,EAAE,CAAC;YACnC,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,GAAG,CAAC,UAAU,CAAC,sBAAsB,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CACX,8EAA8E,CACjF,CAAC;QACN,CAAC;QAED,OAAO,YAAY,CAAC,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAClE,CAAC,CAAC;IAEF,CAAC;QACG,MAAM,EAAE,GAAG,MAAM,CAAC,wBAAwB,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAEzE,MAAM,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;QAEzB,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE;YAChD,UAAU,EAAE,EAAE,CAAC,UAAU;YACzB,QAAQ,EAAE,EAAE,CAAC,QAAQ;YACrB,KAAK,EAAE,iBAAiB;SAC3B,CAAC,CAAC;IACP,CAAC;AACL,CAAC;AAED,MAAM,+BAA+B,GAAG,kCAAkC,CAAC;AAE3E,SAAS,oBAAoB,CAAC,MAAsC;IAChE,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAAC;IAEtC,OAAO,GAAG,sBAAsB,GAAG,kBAAkB,EAAE,CAAC;AAC5D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,MAAsC;IACpF,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAAC;IAEtC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,MAAM,YAAY,EAAE,CAAC;IAEvD,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAEvE,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAC;IAEhE,SAAS,0BAA0B,CAAC,MAA4B;QAC5D,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;QAE3B,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,UAAU,CAAC,+BAA+B,CAAC,CAAC;IAC9F,CAAC;IAED,KAAK,UAAU,mBAAmB,CAAC,MAElC;QACG,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,CAAC;QAEzC,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,GAAG,MAAM,iBAAiB,CAAC;YAC1D,gBAAgB,EAAE,qBAAqB,CAAC,KAAK,CAAC,+BAA+B,CAAC,MAAM,CAAC;YACrF,UAAU;SACb,CAAC,CAAC;QAEH,MAAM,YAAY,GAAiB,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAEhE,OAAO,EAAE,YAAY,EAAE,CAAC;IAC5B,CAAC;IAED,SAAS,4BAA4B;QACjC,cAAc,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;IACjD,CAAC;IAED,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,4BAA4B,EAAE,CAAC;AAC7F,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,MAAsC;IAC5E,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;IAEhC,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,CACpC,oBAAoB,CAAC,EAAE,kBAAkB,EAAE,YAAY,CAAC,KAAK,EAAE,CAAC,CACnE,CAAC;IAEF,MAAM,CAAC,SAAS,KAAK,IAAI,EAAE,SAAS,CAAC,CAAC;IAEtC,MAAM,EAAE,gBAAgB,EAAE,8BAA8B,EAAE,GAAG,MAAM,iBAAiB,CAAC;QACjF,SAAS;QACT,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;KACxC,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,GAAG,+BAA+B,GAAG,8BAA8B,EAAE,CAAC;IAE/F,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAA2B,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const initialLocationHref: string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initialLocationHref.js","sourceRoot":"","sources":["../../../src/core/initialLocationHref.ts"],"names":[],"mappings":"AAAA,MAAM,aAAa,GAAG;IAClB,mBAAmB,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;CAC5C,CAAC;AAEF,MAAM,CAAC,MAAM,EAAE,mBAAmB,EAAE,GAAG,aAAa,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { NonPostableEvt } from "../tools/Evt";
|
|
2
|
+
export declare function createGetIsNewBrowserSession(params: {
|
|
3
|
+
configId: string;
|
|
4
|
+
evtUserNotLoggedIn: NonPostableEvt<void>;
|
|
5
|
+
}): {
|
|
6
|
+
getIsNewBrowserSession: (params: {
|
|
7
|
+
subjectId: string;
|
|
8
|
+
}) => boolean;
|
|
9
|
+
};
|
|
@@ -1,37 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export function createGetIsNewBrowserSession(params: {
|
|
4
|
-
configId: string;
|
|
5
|
-
evtUserNotLoggedIn: NonPostableEvt<void>;
|
|
6
|
-
}) {
|
|
1
|
+
export function createGetIsNewBrowserSession(params) {
|
|
7
2
|
const { configId, evtUserNotLoggedIn } = params;
|
|
8
|
-
|
|
9
3
|
const SESSION_STORAGE_KEY = `oidc-spa.subject-id:${configId}`;
|
|
10
|
-
|
|
11
4
|
{
|
|
12
5
|
const { unsubscribe } = evtUserNotLoggedIn.subscribe(() => {
|
|
13
6
|
unsubscribe();
|
|
14
7
|
sessionStorage.removeItem(SESSION_STORAGE_KEY);
|
|
15
8
|
});
|
|
16
9
|
}
|
|
17
|
-
|
|
18
|
-
function getIsNewBrowserSession(params: { subjectId: string }): boolean {
|
|
10
|
+
function getIsNewBrowserSession(params) {
|
|
19
11
|
const { subjectId } = params;
|
|
20
|
-
|
|
21
12
|
const subjectId_sessionStorage = sessionStorage.getItem(SESSION_STORAGE_KEY);
|
|
22
|
-
|
|
23
13
|
if (subjectId_sessionStorage === null) {
|
|
24
14
|
sessionStorage.setItem(SESSION_STORAGE_KEY, subjectId);
|
|
25
15
|
return true;
|
|
26
16
|
}
|
|
27
|
-
|
|
28
17
|
if (subjectId !== subjectId_sessionStorage) {
|
|
29
18
|
sessionStorage.setItem(SESSION_STORAGE_KEY, subjectId);
|
|
30
19
|
return true;
|
|
31
20
|
}
|
|
32
|
-
|
|
33
21
|
return false;
|
|
34
22
|
}
|
|
35
|
-
|
|
36
23
|
return { getIsNewBrowserSession };
|
|
37
24
|
}
|
|
25
|
+
//# sourceMappingURL=isNewBrowserSession.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isNewBrowserSession.js","sourceRoot":"","sources":["../../../src/core/isNewBrowserSession.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,4BAA4B,CAAC,MAG5C;IACG,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAAC;IAEhD,MAAM,mBAAmB,GAAG,uBAAuB,QAAQ,EAAE,CAAC;IAE9D,CAAC;QACG,MAAM,EAAE,WAAW,EAAE,GAAG,kBAAkB,CAAC,SAAS,CAAC,GAAG,EAAE;YACtD,WAAW,EAAE,CAAC;YACd,cAAc,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACP,CAAC;IAED,SAAS,sBAAsB,CAAC,MAA6B;QACzD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;QAE7B,MAAM,wBAAwB,GAAG,cAAc,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAE7E,IAAI,wBAAwB,KAAK,IAAI,EAAE,CAAC;YACpC,cAAc,CAAC,OAAO,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC;YACvD,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,IAAI,SAAS,KAAK,wBAAwB,EAAE,CAAC;YACzC,cAAc,CAAC,OAAO,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC;YACvD,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,EAAE,sBAAsB,EAAE,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { UserManager as OidcClientTsUserManager } from "../vendor/frontend/oidc-client-ts";
|
|
2
|
+
import type { NonPostableEvt } from "../tools/Evt";
|
|
3
|
+
type Params = Params.Login | Params.GoToAuthServer;
|
|
4
|
+
declare namespace Params {
|
|
5
|
+
type Common = {
|
|
6
|
+
redirectUrl: string;
|
|
7
|
+
extraQueryParams_local: Record<string, string | undefined> | undefined;
|
|
8
|
+
transformUrlBeforeRedirect_local: ((url: string) => string) | undefined;
|
|
9
|
+
};
|
|
10
|
+
export type Login = Common & {
|
|
11
|
+
action: "login";
|
|
12
|
+
doNavigateBackToLastPublicUrlIfTheTheUserNavigateBack: boolean;
|
|
13
|
+
doForceReloadOnBfCache: boolean;
|
|
14
|
+
interaction: "ensure no interaction" | "ensure interaction" | "directly redirect if active session show login otherwise";
|
|
15
|
+
};
|
|
16
|
+
export type GoToAuthServer = Common & {
|
|
17
|
+
action: "go to auth server";
|
|
18
|
+
};
|
|
19
|
+
export {};
|
|
20
|
+
}
|
|
21
|
+
export declare function getPrSafelyRestoredFromBfCacheAfterLoginBackNavigation(): Promise<void>;
|
|
22
|
+
export declare function createLoginOrGoToAuthServer(params: {
|
|
23
|
+
configId: string;
|
|
24
|
+
oidcClientTsUserManager: OidcClientTsUserManager;
|
|
25
|
+
transformUrlBeforeRedirect: ((params: {
|
|
26
|
+
authorizationUrl: string;
|
|
27
|
+
isSilent: boolean;
|
|
28
|
+
}) => string) | undefined;
|
|
29
|
+
getExtraQueryParams: ((params: {
|
|
30
|
+
isSilent: boolean;
|
|
31
|
+
url: string;
|
|
32
|
+
}) => Record<string, string | undefined>) | undefined;
|
|
33
|
+
getExtraTokenParams: (() => Record<string, string | undefined>) | undefined;
|
|
34
|
+
homeUrl: string;
|
|
35
|
+
evtIsUserLoggedIn: NonPostableEvt<boolean>;
|
|
36
|
+
log: typeof console.log | undefined;
|
|
37
|
+
}): {
|
|
38
|
+
loginOrGoToAuthServer: (params: Params) => Promise<never>;
|
|
39
|
+
};
|
|
40
|
+
export {};
|