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