oidc-spa 6.1.6 → 6.1.8
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/oidc/StateData.d.ts +1 -1
- package/oidc/StateData.js +9 -4
- package/oidc/StateData.js.map +1 -1
- package/oidc/{configHash.d.ts → configId.d.ts} +1 -1
- package/oidc/configId.js +7 -0
- package/oidc/configId.js.map +1 -0
- package/oidc/createOidc.d.ts +10 -3
- package/oidc/createOidc.js +99 -82
- package/oidc/createOidc.js.map +1 -1
- package/oidc/handleOidcCallback.d.ts +8 -2
- package/oidc/handleOidcCallback.js +88 -119
- package/oidc/handleOidcCallback.js.map +1 -1
- package/oidc/index.d.ts +0 -1
- package/oidc/index.js +1 -3
- package/oidc/index.js.map +1 -1
- package/oidc/loginSilent.d.ts +3 -3
- package/oidc/loginSilent.js +4 -4
- package/oidc/loginSilent.js.map +1 -1
- package/oidc/logoutPropagationToOtherTabs.d.ts +2 -2
- package/oidc/logoutPropagationToOtherTabs.js +8 -8
- package/oidc/logoutPropagationToOtherTabs.js.map +1 -1
- package/package.json +11 -11
- package/react/react.js +0 -3
- package/react/react.js.map +1 -1
- package/src/oidc/StateData.ts +12 -5
- package/src/oidc/configId.ts +3 -0
- package/src/oidc/createOidc.ts +67 -39
- package/src/oidc/handleOidcCallback.ts +25 -9
- package/src/oidc/index.ts +0 -1
- package/src/oidc/loginSilent.ts +7 -7
- package/src/oidc/logoutPropagationToOtherTabs.ts +12 -14
- package/src/react/react.tsx +1 -11
- package/src/tools/generateUrlSafeRandom.ts +26 -0
- package/tools/generateUrlSafeRandom.d.ts +3 -0
- package/tools/generateUrlSafeRandom.js +51 -0
- package/tools/generateUrlSafeRandom.js.map +1 -0
- package/oidc/configHash.js +0 -8
- package/oidc/configHash.js.map +0 -1
- package/src/oidc/configHash.ts +0 -5
- package/src/tools/fnv1aHash.ts +0 -8
- package/tools/fnv1aHash.d.ts +0 -1
- package/tools/fnv1aHash.js +0 -12
- package/tools/fnv1aHash.js.map +0 -1
package/oidc/StateData.d.ts
CHANGED
package/oidc/StateData.js
CHANGED
|
@@ -8,14 +8,19 @@ exports.clearStateStore = clearStateStore;
|
|
|
8
8
|
exports.getStateData = getStateData;
|
|
9
9
|
exports.markStateDataAsProcessedByCallback = markStateDataAsProcessedByCallback;
|
|
10
10
|
var tsafe_1 = require("../vendor/frontend/tsafe");
|
|
11
|
-
var
|
|
12
|
-
var STATE_QUERY_PARAM_VALUE_IDENTIFIER_PREFIX = "
|
|
11
|
+
var generateUrlSafeRandom_1 = require("../tools/generateUrlSafeRandom");
|
|
12
|
+
var STATE_QUERY_PARAM_VALUE_IDENTIFIER_PREFIX = "b2lkYy1zcGEu";
|
|
13
|
+
var RANDOM_STRING_LENGTH = 32 - STATE_QUERY_PARAM_VALUE_IDENTIFIER_PREFIX.length;
|
|
13
14
|
function generateStateQueryParamValue() {
|
|
14
|
-
return "".concat(STATE_QUERY_PARAM_VALUE_IDENTIFIER_PREFIX).concat((0,
|
|
15
|
+
return "".concat(STATE_QUERY_PARAM_VALUE_IDENTIFIER_PREFIX).concat((0, generateUrlSafeRandom_1.generateUrlSafeRandom)({
|
|
16
|
+
length: RANDOM_STRING_LENGTH
|
|
17
|
+
}));
|
|
15
18
|
}
|
|
16
19
|
function getIsStatQueryParamValue(params) {
|
|
17
20
|
var maybeStateQueryParamValue = params.maybeStateQueryParamValue;
|
|
18
|
-
return maybeStateQueryParamValue.startsWith(STATE_QUERY_PARAM_VALUE_IDENTIFIER_PREFIX)
|
|
21
|
+
return (maybeStateQueryParamValue.startsWith(STATE_QUERY_PARAM_VALUE_IDENTIFIER_PREFIX) &&
|
|
22
|
+
maybeStateQueryParamValue.length ===
|
|
23
|
+
STATE_QUERY_PARAM_VALUE_IDENTIFIER_PREFIX.length + RANDOM_STRING_LENGTH);
|
|
19
24
|
}
|
|
20
25
|
exports.STATE_STORE_KEY_PREFIX = "oidc.";
|
|
21
26
|
function getKey(params) {
|
package/oidc/StateData.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StateData.js","sourceRoot":"","sources":["../src/oidc/StateData.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"StateData.js","sourceRoot":"","sources":["../src/oidc/StateData.ts"],"names":[],"mappings":"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"}
|
package/oidc/configId.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configId.js","sourceRoot":"","sources":["../src/oidc/configId.ts"],"names":[],"mappings":";;AAAA,kCAEC;AAFD,SAAgB,WAAW,CAAC,MAA+C;IACvE,OAAO,UAAG,MAAM,CAAC,SAAS,cAAI,MAAM,CAAC,QAAQ,CAAE,CAAC;AACpD,CAAC"}
|
package/oidc/createOidc.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { StatefulObservable } from "../tools/StatefulObservable";
|
|
1
2
|
import type { Oidc } from "./Oidc";
|
|
2
3
|
import { type AwaitableEventEmitter } from "../tools/AwaitableEventEmitter";
|
|
3
4
|
export type ParamsOfCreateOidc<DecodedIdToken extends Record<string, unknown> = Record<string, unknown>, AutoLogin extends boolean = false> = {
|
|
@@ -69,8 +70,14 @@ export type ParamsOfCreateOidc<DecodedIdToken extends Record<string, unknown> =
|
|
|
69
70
|
};
|
|
70
71
|
declare global {
|
|
71
72
|
interface Window {
|
|
72
|
-
"__oidc-spa.
|
|
73
|
-
|
|
73
|
+
"__oidc-spa.createOidc.GlobalContext": {
|
|
74
|
+
prOidcByConfigId: Map<string, Promise<Oidc<any>>>;
|
|
75
|
+
evtAuthResponseHandled: AwaitableEventEmitter<void>;
|
|
76
|
+
URL_real: typeof URL;
|
|
77
|
+
$isUserActive: StatefulObservable<boolean> | undefined;
|
|
78
|
+
hasLoginBeenCalled: boolean;
|
|
79
|
+
hasLogoutBeenCalled: boolean;
|
|
80
|
+
};
|
|
74
81
|
}
|
|
75
82
|
}
|
|
76
83
|
/** @see: https://docs.oidc-spa.dev/v/v6/usage */
|
|
@@ -79,6 +86,6 @@ export declare function createOidc_nonMemoized<DecodedIdToken extends Record<str
|
|
|
79
86
|
issuerUri: string;
|
|
80
87
|
clientId: string;
|
|
81
88
|
scopes: string[];
|
|
82
|
-
|
|
89
|
+
configId: string;
|
|
83
90
|
log: typeof console.log | undefined;
|
|
84
91
|
}): Promise<AutoLogin extends true ? Oidc.LoggedIn<DecodedIdToken> : Oidc<DecodedIdToken>>;
|
package/oidc/createOidc.js
CHANGED
|
@@ -93,7 +93,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
93
93
|
}
|
|
94
94
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
95
95
|
};
|
|
96
|
-
var _a
|
|
96
|
+
var _a;
|
|
97
97
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
98
98
|
exports.createOidc = createOidc;
|
|
99
99
|
exports.createOidc_nonMemoized = createOidc_nonMemoized;
|
|
@@ -110,19 +110,27 @@ var toFullyQualifiedUrl_1 = require("../tools/toFullyQualifiedUrl");
|
|
|
110
110
|
var OidcInitializationError_1 = require("./OidcInitializationError");
|
|
111
111
|
var StateData_1 = require("./StateData");
|
|
112
112
|
var logoutPropagationToOtherTabs_1 = require("./logoutPropagationToOtherTabs");
|
|
113
|
-
var
|
|
113
|
+
var configId_1 = require("./configId");
|
|
114
114
|
var oidcClientTsUserToTokens_1 = require("./oidcClientTsUserToTokens");
|
|
115
115
|
var loginSilent_1 = require("./loginSilent");
|
|
116
116
|
var handleOidcCallback_1 = require("./handleOidcCallback");
|
|
117
117
|
var AwaitableEventEmitter_1 = require("../tools/AwaitableEventEmitter");
|
|
118
118
|
// NOTE: Replaced at build time
|
|
119
|
-
var VERSION = "6.1.
|
|
120
|
-
(
|
|
121
|
-
(
|
|
119
|
+
var VERSION = "6.1.8";
|
|
120
|
+
(0, handleOidcCallback_1.handleOidcCallback)();
|
|
121
|
+
(_a = window["__oidc-spa.createOidc.GlobalContext"]) !== null && _a !== void 0 ? _a : (window["__oidc-spa.createOidc.GlobalContext"] = {
|
|
122
|
+
prOidcByConfigId: new Map(),
|
|
123
|
+
evtAuthResponseHandled: (0, AwaitableEventEmitter_1.createAwaitableEventEmitter)(),
|
|
124
|
+
URL_real: window.URL,
|
|
125
|
+
$isUserActive: undefined,
|
|
126
|
+
hasLoginBeenCalled: false,
|
|
127
|
+
hasLogoutBeenCalled: false
|
|
128
|
+
});
|
|
129
|
+
var globalContext = window["__oidc-spa.createOidc.GlobalContext"];
|
|
122
130
|
/** @see: https://docs.oidc-spa.dev/v/v6/usage */
|
|
123
131
|
function createOidc(params) {
|
|
124
132
|
return __awaiter(this, void 0, void 0, function () {
|
|
125
|
-
var _a, _b, name_1, value, issuerUri_params, clientId, _c, scopes, debugLogs, rest, issuerUri, log,
|
|
133
|
+
var _a, _b, name_1, value, issuerUri_params, clientId, _c, scopes, debugLogs, rest, issuerUri, log, configId, prOidcByConfigId, prOidc, dOidc, oidc;
|
|
126
134
|
var e_1, _d;
|
|
127
135
|
return __generator(this, function (_e) {
|
|
128
136
|
switch (_e.label) {
|
|
@@ -168,9 +176,10 @@ function createOidc(params) {
|
|
|
168
176
|
}
|
|
169
177
|
});
|
|
170
178
|
})();
|
|
171
|
-
|
|
179
|
+
configId = (0, configId_1.getConfigId)({ issuerUri: issuerUri, clientId: clientId });
|
|
180
|
+
prOidcByConfigId = globalContext.prOidcByConfigId;
|
|
172
181
|
use_previous_instance: {
|
|
173
|
-
prOidc =
|
|
182
|
+
prOidc = prOidcByConfigId.get(configId);
|
|
174
183
|
if (prOidc === undefined) {
|
|
175
184
|
break use_previous_instance;
|
|
176
185
|
}
|
|
@@ -186,12 +195,12 @@ function createOidc(params) {
|
|
|
186
195
|
return [2 /*return*/, prOidc];
|
|
187
196
|
}
|
|
188
197
|
dOidc = new Deferred_1.Deferred();
|
|
189
|
-
|
|
198
|
+
prOidcByConfigId.set(configId, dOidc.pr);
|
|
190
199
|
return [4 /*yield*/, createOidc_nonMemoized(rest, {
|
|
191
200
|
issuerUri: issuerUri,
|
|
192
201
|
clientId: clientId,
|
|
193
202
|
scopes: scopes,
|
|
194
|
-
|
|
203
|
+
configId: configId,
|
|
195
204
|
log: log
|
|
196
205
|
})];
|
|
197
206
|
case 1:
|
|
@@ -202,19 +211,15 @@ function createOidc(params) {
|
|
|
202
211
|
});
|
|
203
212
|
});
|
|
204
213
|
}
|
|
205
|
-
var $isUserActive = undefined;
|
|
206
|
-
var URL_real = window.URL;
|
|
207
|
-
var hasLoginBeenCalled = false;
|
|
208
|
-
var hasLogoutBeenCalled = false;
|
|
209
214
|
function createOidc_nonMemoized(params, preProcessedParams) {
|
|
210
215
|
return __awaiter(this, void 0, void 0, function () {
|
|
211
|
-
var transformUrlBeforeRedirect, extraQueryParamsOrGetter, extraTokenParamsOrGetter, homeUrl_params, decodedIdTokenSchema, __unsafe_ssoSessionIdleSeconds, _a, autoLogoutParams, _b, autoLogin, postLoginRedirectUrl, __clientSecret_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, issuerUri, clientId, scopes,
|
|
216
|
+
var transformUrlBeforeRedirect, extraQueryParamsOrGetter, extraTokenParamsOrGetter, homeUrl_params, decodedIdTokenSchema, __unsafe_ssoSessionIdleSeconds, _a, autoLogoutParams, _b, autoLogin, postLoginRedirectUrl, __clientSecret_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, issuerUri, clientId, scopes, configId, log, _c, getExtraQueryParams, getExtraTokenParams, homeAndCallbackUrl, isHandled, USER_LOGGED_IN_KEY, stateQueryParamValue_instance, oidcClientTsUserManager, lastPublicRoute, startTrackingLastPublicRoute, loginOrGoToAuthServer, BROWSER_SESSION_NOT_FIRST_INIT_KEY, resultOfLoginProcess, common, error, initializationError, oidc_1, oidc_2, currentTokens, autoLogoutCountdownTickCallbacks, onTokenChanges, oidc, prOtherTabLogout, getMsBeforeExpiration_1, startCountdown_2, stopCountdown_1;
|
|
212
217
|
var _this = this;
|
|
213
218
|
return __generator(this, function (_d) {
|
|
214
219
|
switch (_d.label) {
|
|
215
220
|
case 0:
|
|
216
221
|
transformUrlBeforeRedirect = params.transformUrlBeforeRedirect, extraQueryParamsOrGetter = params.extraQueryParams, extraTokenParamsOrGetter = params.extraTokenParams, homeUrl_params = params.homeUrl, decodedIdTokenSchema = params.decodedIdTokenSchema, __unsafe_ssoSessionIdleSeconds = params.__unsafe_ssoSessionIdleSeconds, _a = params.autoLogoutParams, autoLogoutParams = _a === void 0 ? { redirectTo: "current page" } : _a, _b = params.autoLogin, autoLogin = _b === void 0 ? false : _b, postLoginRedirectUrl = params.postLoginRedirectUrl, __clientSecret_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = params.__clientSecret_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
|
|
217
|
-
issuerUri = preProcessedParams.issuerUri, clientId = preProcessedParams.clientId, scopes = preProcessedParams.scopes,
|
|
222
|
+
issuerUri = preProcessedParams.issuerUri, clientId = preProcessedParams.clientId, scopes = preProcessedParams.scopes, configId = preProcessedParams.configId, log = preProcessedParams.log;
|
|
218
223
|
_c = __read([extraQueryParamsOrGetter, extraTokenParamsOrGetter].map(function (valueOrGetter) {
|
|
219
224
|
if (typeof valueOrGetter === "function") {
|
|
220
225
|
return valueOrGetter;
|
|
@@ -233,13 +238,17 @@ function createOidc_nonMemoized(params, preProcessedParams) {
|
|
|
233
238
|
issuerUri: issuerUri,
|
|
234
239
|
clientId: clientId,
|
|
235
240
|
scopes: scopes,
|
|
236
|
-
|
|
241
|
+
configId: configId,
|
|
237
242
|
homeAndCallbackUrl: homeAndCallbackUrl
|
|
238
243
|
});
|
|
239
|
-
|
|
244
|
+
isHandled = (0, handleOidcCallback_1.handleOidcCallback)().isHandled;
|
|
245
|
+
if (!isHandled) return [3 /*break*/, 2];
|
|
246
|
+
return [4 /*yield*/, new Promise(function () { })];
|
|
240
247
|
case 1:
|
|
241
248
|
_d.sent();
|
|
242
|
-
|
|
249
|
+
_d.label = 2;
|
|
250
|
+
case 2:
|
|
251
|
+
USER_LOGGED_IN_KEY = "oidc-spa.user-logged-in:".concat(configId);
|
|
243
252
|
localStorage.removeItem(USER_LOGGED_IN_KEY);
|
|
244
253
|
stateQueryParamValue_instance = (0, StateData_1.generateStateQueryParamValue)();
|
|
245
254
|
oidcClientTsUserManager = new oidc_client_ts_and_jwt_decode_1.UserManager({
|
|
@@ -269,7 +278,7 @@ function createOidc_nonMemoized(params, preProcessedParams) {
|
|
|
269
278
|
};
|
|
270
279
|
};
|
|
271
280
|
loginOrGoToAuthServer = function (params) { return __awaiter(_this, void 0, void 0, function () {
|
|
272
|
-
var extraQueryParams_fromLoginFn, redirectUrl_params, transformUrlBeforeRedirect_fromLoginFn, rest, callback_1, redirectUrl, URL_1, redirectMethod, extraQueryParams;
|
|
281
|
+
var extraQueryParams_fromLoginFn, redirectUrl_params, transformUrlBeforeRedirect_fromLoginFn, rest, callback_1, redirectUrl, URL_real_1, URL_1, redirectMethod, extraQueryParams;
|
|
273
282
|
return __generator(this, function (_a) {
|
|
274
283
|
switch (_a.label) {
|
|
275
284
|
case 0:
|
|
@@ -279,11 +288,11 @@ function createOidc_nonMemoized(params, preProcessedParams) {
|
|
|
279
288
|
// When the app is hosted on https (so not in dev mode) the browser will restore the state of the app
|
|
280
289
|
// instead of reloading the page.
|
|
281
290
|
if (rest.action === "login") {
|
|
282
|
-
if (hasLoginBeenCalled) {
|
|
291
|
+
if (globalContext.hasLoginBeenCalled) {
|
|
283
292
|
log === null || log === void 0 ? void 0 : log("login() has already been called, ignoring the call");
|
|
284
293
|
return [2 /*return*/, new Promise(function () { })];
|
|
285
294
|
}
|
|
286
|
-
hasLoginBeenCalled = true;
|
|
295
|
+
globalContext.hasLoginBeenCalled = true;
|
|
287
296
|
callback_1 = function () {
|
|
288
297
|
if (document.visibilityState === "visible") {
|
|
289
298
|
document.removeEventListener("visibilitychange", callback_1);
|
|
@@ -306,7 +315,7 @@ function createOidc_nonMemoized(params, preProcessedParams) {
|
|
|
306
315
|
}
|
|
307
316
|
else {
|
|
308
317
|
log === null || log === void 0 ? void 0 : log("and the user doesn't seem to be authenticated, avoiding a reload");
|
|
309
|
-
hasLoginBeenCalled = false;
|
|
318
|
+
globalContext.hasLoginBeenCalled = false;
|
|
310
319
|
}
|
|
311
320
|
}
|
|
312
321
|
}
|
|
@@ -326,16 +335,17 @@ function createOidc_nonMemoized(params, preProcessedParams) {
|
|
|
326
335
|
// used internally by oidc-client-ts. It's save to do so since this is the
|
|
327
336
|
// last thing that will be done before the redirect.
|
|
328
337
|
{
|
|
338
|
+
URL_real_1 = globalContext.URL_real;
|
|
329
339
|
URL_1 = function () {
|
|
330
340
|
var args = [];
|
|
331
341
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
332
342
|
args[_i] = arguments[_i];
|
|
333
343
|
}
|
|
334
|
-
var urlInstance = new (
|
|
344
|
+
var urlInstance = new (URL_real_1.bind.apply(URL_real_1, __spreadArray([void 0], __read(args), false)))();
|
|
335
345
|
return new Proxy(urlInstance, {
|
|
336
346
|
get: function (target, prop) {
|
|
337
347
|
if (prop === "href") {
|
|
338
|
-
Object.defineProperty(window, "URL", { value:
|
|
348
|
+
Object.defineProperty(window, "URL", { value: URL_real_1 });
|
|
339
349
|
var url_1 = urlInstance.href;
|
|
340
350
|
[
|
|
341
351
|
[getExtraQueryParams === null || getExtraQueryParams === void 0 ? void 0 : getExtraQueryParams(), transformUrlBeforeRedirect],
|
|
@@ -420,7 +430,7 @@ function createOidc_nonMemoized(params, preProcessedParams) {
|
|
|
420
430
|
redirectUrl: redirectUrl,
|
|
421
431
|
extraQueryParams: extraQueryParams,
|
|
422
432
|
hasBeenProcessedByCallback: false,
|
|
423
|
-
|
|
433
|
+
configId: configId,
|
|
424
434
|
action: "login"
|
|
425
435
|
}),
|
|
426
436
|
redirectMethod: redirectMethod
|
|
@@ -431,9 +441,9 @@ function createOidc_nonMemoized(params, preProcessedParams) {
|
|
|
431
441
|
}
|
|
432
442
|
});
|
|
433
443
|
}); };
|
|
434
|
-
BROWSER_SESSION_NOT_FIRST_INIT_KEY = "oidc-spa.browser-session-not-first-init:".concat(
|
|
444
|
+
BROWSER_SESSION_NOT_FIRST_INIT_KEY = "oidc-spa.browser-session-not-first-init:".concat(configId);
|
|
435
445
|
return [4 /*yield*/, (function () { return __awaiter(_this, void 0, void 0, function () {
|
|
436
|
-
var authResponse, stateData, _a, authResponseUrl, oidcClientTsUser, error_1, error_3, authResponseUrl, _b, result_loginSilent, authResponse, oidcClientTsUser, error_2, error_4;
|
|
446
|
+
var authResponse, stateData, evtAuthResponseHandled_1, prHandled, _a, authResponseUrl, oidcClientTsUser, error_1, error_3, authResponseUrl, _b, result_loginSilent, authResponse, oidcClientTsUser, error_2, error_4;
|
|
437
447
|
return __generator(this, function (_c) {
|
|
438
448
|
switch (_c.label) {
|
|
439
449
|
case 0:
|
|
@@ -455,40 +465,47 @@ function createOidc_nonMemoized(params, preProcessedParams) {
|
|
|
455
465
|
return authResponse;
|
|
456
466
|
})();
|
|
457
467
|
if (authResponse === undefined) {
|
|
458
|
-
return [3 /*break*/,
|
|
468
|
+
return [3 /*break*/, 15];
|
|
459
469
|
}
|
|
460
470
|
stateData = (0, StateData_1.getStateData)({ stateQueryParamValue: authResponse["state"] });
|
|
461
471
|
(0, tsafe_1.assert)(stateData !== undefined);
|
|
462
472
|
(0, tsafe_1.assert)(stateData.context === "redirect");
|
|
463
|
-
|
|
464
|
-
return [
|
|
473
|
+
evtAuthResponseHandled_1 = globalContext.evtAuthResponseHandled;
|
|
474
|
+
if (!(stateData.configId !== configId)) return [3 /*break*/, 4];
|
|
475
|
+
prHandled = evtAuthResponseHandled_1.waitFor();
|
|
476
|
+
return [4 /*yield*/, Promise.resolve()];
|
|
465
477
|
case 1:
|
|
466
478
|
_c.sent();
|
|
467
|
-
return [3 /*break*/,
|
|
479
|
+
if (!(sessionStorage.getItem(handleOidcCallback_1.AUTH_RESPONSE_KEY) === null)) return [3 /*break*/, 3];
|
|
480
|
+
return [4 /*yield*/, prHandled];
|
|
468
481
|
case 2:
|
|
482
|
+
_c.sent();
|
|
483
|
+
_c.label = 3;
|
|
484
|
+
case 3: return [3 /*break*/, 15];
|
|
485
|
+
case 4:
|
|
469
486
|
sessionStorage.removeItem(handleOidcCallback_1.AUTH_RESPONSE_KEY);
|
|
470
487
|
_a = stateData.action;
|
|
471
488
|
switch (_a) {
|
|
472
|
-
case "login": return [3 /*break*/,
|
|
473
|
-
case "logout": return [3 /*break*/,
|
|
489
|
+
case "login": return [3 /*break*/, 5];
|
|
490
|
+
case "logout": return [3 /*break*/, 10];
|
|
474
491
|
}
|
|
475
|
-
return [3 /*break*/,
|
|
476
|
-
case
|
|
492
|
+
return [3 /*break*/, 15];
|
|
493
|
+
case 5:
|
|
477
494
|
log === null || log === void 0 ? void 0 : log("Handling login redirect auth response", authResponse);
|
|
478
495
|
authResponseUrl = (0, loginSilent_1.authResponseToUrl)(authResponse);
|
|
479
496
|
oidcClientTsUser = undefined;
|
|
480
|
-
_c.label =
|
|
481
|
-
case
|
|
482
|
-
_c.trys.push([
|
|
497
|
+
_c.label = 6;
|
|
498
|
+
case 6:
|
|
499
|
+
_c.trys.push([6, 8, , 9]);
|
|
483
500
|
return [4 /*yield*/, oidcClientTsUserManager
|
|
484
501
|
.signinRedirectCallback(authResponseUrl)
|
|
485
502
|
.finally(function () {
|
|
486
|
-
|
|
503
|
+
evtAuthResponseHandled_1.post();
|
|
487
504
|
})];
|
|
488
|
-
case
|
|
505
|
+
case 7:
|
|
489
506
|
oidcClientTsUser = _c.sent();
|
|
490
|
-
return [3 /*break*/,
|
|
491
|
-
case
|
|
507
|
+
return [3 /*break*/, 9];
|
|
508
|
+
case 8:
|
|
492
509
|
error_1 = _c.sent();
|
|
493
510
|
(0, tsafe_1.assert)(error_1 instanceof Error);
|
|
494
511
|
if (error_1.message === "Failed to fetch") {
|
|
@@ -501,11 +518,11 @@ function createOidc_nonMemoized(params, preProcessedParams) {
|
|
|
501
518
|
error_3 = authResponse["error"];
|
|
502
519
|
if (error_3 !== undefined) {
|
|
503
520
|
log === null || log === void 0 ? void 0 : log("The auth server responded with: ".concat(error_3, ", trying to restore from the http only cookie"));
|
|
504
|
-
return [3 /*break*/,
|
|
521
|
+
return [3 /*break*/, 15];
|
|
505
522
|
}
|
|
506
523
|
}
|
|
507
524
|
return [2 /*return*/, error_1];
|
|
508
|
-
case
|
|
525
|
+
case 9:
|
|
509
526
|
sessionStorage.removeItem(BROWSER_SESSION_NOT_FIRST_INIT_KEY);
|
|
510
527
|
return [2 /*return*/, {
|
|
511
528
|
oidcClientTsUser: oidcClientTsUser,
|
|
@@ -520,37 +537,37 @@ function createOidc_nonMemoized(params, preProcessedParams) {
|
|
|
520
537
|
}))
|
|
521
538
|
}
|
|
522
539
|
}];
|
|
523
|
-
case
|
|
540
|
+
case 10:
|
|
524
541
|
log === null || log === void 0 ? void 0 : log("Handling logout redirect auth response", authResponse);
|
|
525
542
|
authResponseUrl = (0, loginSilent_1.authResponseToUrl)(authResponse);
|
|
526
|
-
_c.label =
|
|
527
|
-
case
|
|
528
|
-
_c.trys.push([
|
|
543
|
+
_c.label = 11;
|
|
544
|
+
case 11:
|
|
545
|
+
_c.trys.push([11, 13, , 14]);
|
|
529
546
|
return [4 /*yield*/, oidcClientTsUserManager.signoutRedirectCallback(authResponseUrl)];
|
|
530
|
-
case
|
|
547
|
+
case 12:
|
|
531
548
|
_c.sent();
|
|
532
|
-
return [3 /*break*/,
|
|
533
|
-
case
|
|
549
|
+
return [3 /*break*/, 14];
|
|
550
|
+
case 13:
|
|
534
551
|
_b = _c.sent();
|
|
535
|
-
return [3 /*break*/,
|
|
536
|
-
case
|
|
537
|
-
|
|
552
|
+
return [3 /*break*/, 14];
|
|
553
|
+
case 14:
|
|
554
|
+
evtAuthResponseHandled_1.post();
|
|
538
555
|
(0, logoutPropagationToOtherTabs_1.notifyOtherTabOfLogout)({
|
|
539
|
-
|
|
556
|
+
configId: configId,
|
|
540
557
|
redirectUrl: stateData.redirectUrl,
|
|
541
558
|
sessionId: stateData.sessionId
|
|
542
559
|
});
|
|
543
560
|
// NOTE: The user is no longer logged in.
|
|
544
561
|
return [2 /*return*/, undefined];
|
|
545
|
-
case
|
|
562
|
+
case 15:
|
|
546
563
|
log === null || log === void 0 ? void 0 : log("Trying to restore the auth from the http only cookie (silent signin with iframe)");
|
|
547
564
|
return [4 /*yield*/, (0, loginSilent_1.loginSilent)({
|
|
548
565
|
oidcClientTsUserManager: oidcClientTsUserManager,
|
|
549
566
|
stateQueryParamValue_instance: stateQueryParamValue_instance,
|
|
550
|
-
|
|
567
|
+
configId: configId,
|
|
551
568
|
getExtraTokenParams: getExtraTokenParams
|
|
552
569
|
})];
|
|
553
|
-
case
|
|
570
|
+
case 16:
|
|
554
571
|
result_loginSilent = _c.sent();
|
|
555
572
|
if (!result_loginSilent.isSuccess) {
|
|
556
573
|
switch (result_loginSilent.cause) {
|
|
@@ -570,14 +587,14 @@ function createOidc_nonMemoized(params, preProcessedParams) {
|
|
|
570
587
|
authResponse = result_loginSilent.authResponse;
|
|
571
588
|
log === null || log === void 0 ? void 0 : log("Silent signin auth response", authResponse);
|
|
572
589
|
oidcClientTsUser = undefined;
|
|
573
|
-
_c.label =
|
|
574
|
-
case
|
|
575
|
-
_c.trys.push([
|
|
590
|
+
_c.label = 17;
|
|
591
|
+
case 17:
|
|
592
|
+
_c.trys.push([17, 19, , 20]);
|
|
576
593
|
return [4 /*yield*/, oidcClientTsUserManager.signinRedirectCallback((0, loginSilent_1.authResponseToUrl)(authResponse))];
|
|
577
|
-
case
|
|
594
|
+
case 18:
|
|
578
595
|
oidcClientTsUser = _c.sent();
|
|
579
|
-
return [3 /*break*/,
|
|
580
|
-
case
|
|
596
|
+
return [3 /*break*/, 20];
|
|
597
|
+
case 19:
|
|
581
598
|
error_2 = _c.sent();
|
|
582
599
|
(0, tsafe_1.assert)(error_2 instanceof Error);
|
|
583
600
|
if (error_2.message === "Failed to fetch") {
|
|
@@ -596,17 +613,17 @@ function createOidc_nonMemoized(params, preProcessedParams) {
|
|
|
596
613
|
? "(authentication_required just means that there's no active session for the user)"
|
|
597
614
|
: ""
|
|
598
615
|
].join(""));
|
|
599
|
-
return [3 /*break*/,
|
|
616
|
+
return [3 /*break*/, 21];
|
|
600
617
|
}
|
|
601
618
|
}
|
|
602
619
|
return [2 /*return*/, error_2];
|
|
603
|
-
case
|
|
620
|
+
case 20:
|
|
604
621
|
log === null || log === void 0 ? void 0 : log("Successful silent signed in");
|
|
605
622
|
return [2 /*return*/, {
|
|
606
623
|
oidcClientTsUser: oidcClientTsUser,
|
|
607
624
|
backFromAuthServer: undefined
|
|
608
625
|
}];
|
|
609
|
-
case
|
|
626
|
+
case 21:
|
|
610
627
|
// NOTE: The user is not logged in.
|
|
611
628
|
return [2 /*return*/, undefined];
|
|
612
629
|
}
|
|
@@ -655,7 +672,7 @@ function createOidc_nonMemoized(params, preProcessedParams) {
|
|
|
655
672
|
}
|
|
656
673
|
return { tokens: tokens, backFromAuthServer: backFromAuthServer };
|
|
657
674
|
})];
|
|
658
|
-
case
|
|
675
|
+
case 3:
|
|
659
676
|
resultOfLoginProcess = _d.sent();
|
|
660
677
|
common = {
|
|
661
678
|
params: {
|
|
@@ -691,24 +708,24 @@ function createOidc_nonMemoized(params, preProcessedParams) {
|
|
|
691
708
|
// @ts-expect-error: We know what we are doing.
|
|
692
709
|
return [2 /*return*/, oidc_1];
|
|
693
710
|
}
|
|
694
|
-
if (!(resultOfLoginProcess === undefined)) return [3 /*break*/,
|
|
711
|
+
if (!(resultOfLoginProcess === undefined)) return [3 /*break*/, 6];
|
|
695
712
|
log === null || log === void 0 ? void 0 : log("User not logged in");
|
|
696
|
-
if (!autoLogin) return [3 /*break*/,
|
|
713
|
+
if (!autoLogin) return [3 /*break*/, 5];
|
|
697
714
|
log === null || log === void 0 ? void 0 : log("Authentication is required everywhere on this app, redirecting to the login page");
|
|
698
715
|
return [4 /*yield*/, loginOrGoToAuthServer({
|
|
699
716
|
action: "login",
|
|
700
717
|
doesCurrentHrefRequiresAuth: true,
|
|
701
718
|
redirectUrl: postLoginRedirectUrl
|
|
702
719
|
})];
|
|
703
|
-
case 3:
|
|
704
|
-
_d.sent();
|
|
705
|
-
_d.label = 4;
|
|
706
720
|
case 4:
|
|
721
|
+
_d.sent();
|
|
722
|
+
_d.label = 5;
|
|
723
|
+
case 5:
|
|
707
724
|
startTrackingLastPublicRoute();
|
|
708
725
|
oidc_2 = (0, tsafe_1.id)(__assign(__assign({}, common), { isUserLoggedIn: false, login: function (params) { return loginOrGoToAuthServer(__assign({ action: "login" }, params)); }, initializationError: undefined }));
|
|
709
726
|
// @ts-expect-error: We know what we are doing.
|
|
710
727
|
return [2 /*return*/, oidc_2];
|
|
711
|
-
case
|
|
728
|
+
case 6:
|
|
712
729
|
log === null || log === void 0 ? void 0 : log("User is logged in");
|
|
713
730
|
localStorage.setItem(USER_LOGGED_IN_KEY, "true");
|
|
714
731
|
currentTokens = resultOfLoginProcess.tokens;
|
|
@@ -719,11 +736,11 @@ function createOidc_nonMemoized(params, preProcessedParams) {
|
|
|
719
736
|
return __generator(this, function (_a) {
|
|
720
737
|
switch (_a.label) {
|
|
721
738
|
case 0:
|
|
722
|
-
if (hasLogoutBeenCalled) {
|
|
739
|
+
if (globalContext.hasLogoutBeenCalled) {
|
|
723
740
|
log === null || log === void 0 ? void 0 : log("logout() has already been called, ignoring the call");
|
|
724
741
|
return [2 /*return*/, new Promise(function () { })];
|
|
725
742
|
}
|
|
726
|
-
hasLogoutBeenCalled = true;
|
|
743
|
+
globalContext.hasLogoutBeenCalled = true;
|
|
727
744
|
document.addEventListener("visibilitychange", function () {
|
|
728
745
|
if (document.visibilityState === "visible") {
|
|
729
746
|
location.reload();
|
|
@@ -745,7 +762,7 @@ function createOidc_nonMemoized(params, preProcessedParams) {
|
|
|
745
762
|
sessionId = (0, decodeJwt_1.decodeJwt)(oidc.getTokens().idToken).sid;
|
|
746
763
|
return [4 /*yield*/, oidcClientTsUserManager.signoutRedirect({
|
|
747
764
|
state: (0, tsafe_1.id)({
|
|
748
|
-
|
|
765
|
+
configId: configId,
|
|
749
766
|
context: "redirect",
|
|
750
767
|
redirectUrl: postLogoutRedirectUrl,
|
|
751
768
|
hasBeenProcessedByCallback: false,
|
|
@@ -808,7 +825,7 @@ function createOidc_nonMemoized(params, preProcessedParams) {
|
|
|
808
825
|
})() }));
|
|
809
826
|
{
|
|
810
827
|
prOtherTabLogout = (0, logoutPropagationToOtherTabs_1.getPrOtherTabLogout)({
|
|
811
|
-
|
|
828
|
+
configId: configId,
|
|
812
829
|
homeUrl: homeAndCallbackUrl,
|
|
813
830
|
sessionId: (0, decodeJwt_1.decodeJwt)(oidc.getTokens().idToken).sid
|
|
814
831
|
}).prOtherTabLogout;
|
|
@@ -922,12 +939,12 @@ function createOidc_nonMemoized(params, preProcessedParams) {
|
|
|
922
939
|
}
|
|
923
940
|
}).startCountdown;
|
|
924
941
|
stopCountdown_1 = undefined;
|
|
925
|
-
if (
|
|
926
|
-
|
|
942
|
+
if (globalContext.$isUserActive === undefined) {
|
|
943
|
+
globalContext.$isUserActive = (0, createIsUserActive_1.createIsUserActive)({
|
|
927
944
|
theUserIsConsideredInactiveAfterMsOfInactivity: 5000
|
|
928
945
|
}).$isUserActive;
|
|
929
946
|
}
|
|
930
|
-
|
|
947
|
+
globalContext.$isUserActive.subscribe(function (isUserActive) {
|
|
931
948
|
if (isUserActive) {
|
|
932
949
|
if (stopCountdown_1 !== undefined) {
|
|
933
950
|
stopCountdown_1();
|