oidc-spa 5.0.1 → 5.1.1
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.d.ts +1 -0
- package/oidc.js +196 -95
- package/oidc.js.map +1 -1
- package/package.json +1 -1
- package/src/oidc.ts +182 -19
package/oidc.d.ts
CHANGED
|
@@ -149,6 +149,7 @@ export type ParamsOfCreateOidc<DecodedIdToken extends Record<string, unknown> =
|
|
|
149
149
|
__unsafe_ssoSessionIdleSeconds?: number;
|
|
150
150
|
autoLogoutParams?: Parameters<Oidc.LoggedIn<any>["logout"]>[0];
|
|
151
151
|
isAuthGloballyRequired?: IsAuthGloballyRequired;
|
|
152
|
+
doEnableDebugLogs?: boolean;
|
|
152
153
|
};
|
|
153
154
|
/** @see: https://docs.oidc-spa.dev/v/v5/documentation/usage */
|
|
154
155
|
export declare function createOidc<DecodedIdToken extends Record<string, unknown> = Record<string, unknown>, IsAuthGloballyRequired extends boolean = false>(params: ParamsOfCreateOidc<DecodedIdToken, IsAuthGloballyRequired>): Promise<IsAuthGloballyRequired extends true ? Oidc.LoggedIn<DecodedIdToken> : Oidc<DecodedIdToken>>;
|
package/oidc.js
CHANGED
|
@@ -109,6 +109,8 @@ var startCountdown_1 = require("./tools/startCountdown");
|
|
|
109
109
|
var worker_timers_1 = require("./vendor/frontend/worker-timers");
|
|
110
110
|
var OidcInitializationError_1 = require("./OidcInitializationError");
|
|
111
111
|
var base64_1 = require("./tools/base64");
|
|
112
|
+
// NOTE: Replaced at build time
|
|
113
|
+
var VERSION = "5.1.1";
|
|
112
114
|
var PARAMS_TO_RETRIEVE_FROM_SUCCESSFUL_LOGIN = ["code", "state", "session_state", "iss"];
|
|
113
115
|
var $isUserActive = undefined;
|
|
114
116
|
var prOidcByConfigHash = new Map();
|
|
@@ -116,12 +118,31 @@ var URL_real = window.URL;
|
|
|
116
118
|
/** @see: https://docs.oidc-spa.dev/v/v5/documentation/usage */
|
|
117
119
|
function createOidc(params) {
|
|
118
120
|
return __awaiter(this, void 0, void 0, function () {
|
|
119
|
-
var issuerUri, clientId, clientSecret, _a, scopes, transformUrlBeforeRedirect, extraQueryParamsOrGetter, publicUrl_params, decodedIdTokenSchema, __unsafe_ssoSessionIdleSeconds, _b, autoLogoutParams, _c, isAuthGloballyRequired, postLoginRedirectUrl, getExtraQueryParams, publicUrl, configHash, prOidc, dOidc, silentSso, IS_SILENT_SSO_RESERVED_QUERY_PARAM_NAME, CONFIG_HASH_RESERVED_QUERY_PARAM_NAME, result, oidcClientTsUserManager, lastPublicRoute, startTrackingLastPublicRoute, hasLoginBeenCalled, RESULT_OMIT_RESERVED_QUERY_PARAM_NAME, EXTRA_QUERY_PARAMS_BACK_FROM_AUTH_SERVER_RESERVED_QUERY_PARAM_NAME, loginOrGoToAuthServer, resultOfLoginProcess, common, error, initializationError, oidc_1, oidc_2, currentTokens, autoLogoutCountdownTickCallbacks, onTokenChanges, assertSessionStorageNotCleared, oidc, getMsBeforeExpiration_1, startCountdown_2, stopCountdown_1;
|
|
121
|
+
var issuerUri, clientId, clientSecret, _a, scopes, transformUrlBeforeRedirect, extraQueryParamsOrGetter, publicUrl_params, decodedIdTokenSchema, __unsafe_ssoSessionIdleSeconds, _b, autoLogoutParams, _c, isAuthGloballyRequired, postLoginRedirectUrl, _d, doEnableDebugLogs, log, getExtraQueryParams, publicUrl, configHash, prOidc, dOidc, silentSso, IS_SILENT_SSO_RESERVED_QUERY_PARAM_NAME, CONFIG_HASH_RESERVED_QUERY_PARAM_NAME, result, oidcClientTsUserManager, lastPublicRoute, startTrackingLastPublicRoute, hasLoginBeenCalled, RESULT_OMIT_RESERVED_QUERY_PARAM_NAME, EXTRA_QUERY_PARAMS_BACK_FROM_AUTH_SERVER_RESERVED_QUERY_PARAM_NAME, loginOrGoToAuthServer, resultOfLoginProcess, common, error, initializationError, oidc_1, oidc_2, currentTokens, autoLogoutCountdownTickCallbacks, onTokenChanges, assertSessionStorageNotCleared, oidc, getMsBeforeExpiration_1, startCountdown_2, stopCountdown_1;
|
|
120
122
|
var _this = this;
|
|
121
|
-
return __generator(this, function (
|
|
122
|
-
switch (
|
|
123
|
+
return __generator(this, function (_e) {
|
|
124
|
+
switch (_e.label) {
|
|
123
125
|
case 0:
|
|
124
|
-
issuerUri = params.issuerUri, clientId = params.clientId, clientSecret = params.clientSecret, _a = params.scopes, scopes = _a === void 0 ? ["profile"] : _a, transformUrlBeforeRedirect = params.transformUrlBeforeRedirect, extraQueryParamsOrGetter = params.extraQueryParams, publicUrl_params = params.publicUrl, decodedIdTokenSchema = params.decodedIdTokenSchema, __unsafe_ssoSessionIdleSeconds = params.__unsafe_ssoSessionIdleSeconds, _b = params.autoLogoutParams, autoLogoutParams = _b === void 0 ? { "redirectTo": "current page" } : _b, _c = params.isAuthGloballyRequired, isAuthGloballyRequired = _c === void 0 ? false : _c, postLoginRedirectUrl = params.postLoginRedirectUrl;
|
|
126
|
+
issuerUri = params.issuerUri, clientId = params.clientId, clientSecret = params.clientSecret, _a = params.scopes, scopes = _a === void 0 ? ["profile"] : _a, transformUrlBeforeRedirect = params.transformUrlBeforeRedirect, extraQueryParamsOrGetter = params.extraQueryParams, publicUrl_params = params.publicUrl, decodedIdTokenSchema = params.decodedIdTokenSchema, __unsafe_ssoSessionIdleSeconds = params.__unsafe_ssoSessionIdleSeconds, _b = params.autoLogoutParams, autoLogoutParams = _b === void 0 ? { "redirectTo": "current page" } : _b, _c = params.isAuthGloballyRequired, isAuthGloballyRequired = _c === void 0 ? false : _c, postLoginRedirectUrl = params.postLoginRedirectUrl, _d = params.doEnableDebugLogs, doEnableDebugLogs = _d === void 0 ? false : _d;
|
|
127
|
+
log = (function () {
|
|
128
|
+
if (!doEnableDebugLogs) {
|
|
129
|
+
return undefined;
|
|
130
|
+
}
|
|
131
|
+
return (0, tsafe_1.id)(function () {
|
|
132
|
+
var _a = [];
|
|
133
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
134
|
+
_a[_i] = arguments[_i];
|
|
135
|
+
}
|
|
136
|
+
var _b = __read(_a), first = _b[0], rest = _b.slice(1);
|
|
137
|
+
var label = "oidc-spa";
|
|
138
|
+
if (typeof first === "string") {
|
|
139
|
+
console.log.apply(console, __spreadArray([], __read(__spreadArray(["".concat(label, ": ").concat(first)], __read(rest), false)), false));
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
console.log.apply(console, __spreadArray([], __read(__spreadArray(["".concat(label, ":"), first], __read(rest), false)), false));
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
})();
|
|
125
146
|
getExtraQueryParams = (function () {
|
|
126
147
|
if (typeof extraQueryParamsOrGetter === "function") {
|
|
127
148
|
return extraQueryParamsOrGetter;
|
|
@@ -140,11 +161,13 @@ function createOidc(params) {
|
|
|
140
161
|
: "".concat(window.location.origin).concat(publicUrl_params)).replace(/\/$/, "");
|
|
141
162
|
})();
|
|
142
163
|
configHash = (0, fnv1aHashToHex_1.fnv1aHashToHex)("".concat(issuerUri, " ").concat(clientId, " ").concat(clientSecret !== null && clientSecret !== void 0 ? clientSecret : "", " ").concat(scopes.join(" ")));
|
|
164
|
+
log === null || log === void 0 ? void 0 : log("Calling createOidc v".concat(VERSION), { params: params, publicUrl: publicUrl, configHash: configHash });
|
|
143
165
|
use_previous_instance: {
|
|
144
166
|
prOidc = prOidcByConfigHash.get(configHash);
|
|
145
167
|
if (prOidc === undefined) {
|
|
146
168
|
break use_previous_instance;
|
|
147
169
|
}
|
|
170
|
+
log === null || log === void 0 ? void 0 : log("Using previous instance of oidc-spa");
|
|
148
171
|
console.warn([
|
|
149
172
|
"oidc-spa has been instantiated more than once with the same configuration.",
|
|
150
173
|
"If you are in development mode with hot module replacement this is expected you can ignore this warning.",
|
|
@@ -163,6 +186,7 @@ function createOidc(params) {
|
|
|
163
186
|
"hasDedicatedHtmlFile": true,
|
|
164
187
|
"redirectUri": "".concat(publicUrl, "/silent-sso.htm")
|
|
165
188
|
};
|
|
189
|
+
log === null || log === void 0 ? void 0 : log("Wether we use a dedicated silent-sso.htm file or not", silentSso);
|
|
166
190
|
IS_SILENT_SSO_RESERVED_QUERY_PARAM_NAME = "oidc-spa_silent_sso";
|
|
167
191
|
CONFIG_HASH_RESERVED_QUERY_PARAM_NAME = "oidc-spa_config_hash";
|
|
168
192
|
if (!(0, urlQueryParams_1.retrieveQueryParamFromUrl)({
|
|
@@ -181,6 +205,10 @@ function createOidc(params) {
|
|
|
181
205
|
}
|
|
182
206
|
}
|
|
183
207
|
if (!silentSso.hasDedicatedHtmlFile) return [3 /*break*/, 2];
|
|
208
|
+
log === null || log === void 0 ? void 0 : log([
|
|
209
|
+
"User forgot to create the silent-sso.htm file or the web server is not serving it correctly",
|
|
210
|
+
"suspending forever"
|
|
211
|
+
].join(" "));
|
|
184
212
|
// Here the user forget to create the silent-sso.htm file or or the web server is not serving it correctly
|
|
185
213
|
// we shouldn't fall back to the SPA page.
|
|
186
214
|
// In this case we want to let the timeout of the parent expire to provide the correct error message.
|
|
@@ -189,14 +217,15 @@ function createOidc(params) {
|
|
|
189
217
|
// Here the user forget to create the silent-sso.htm file or or the web server is not serving it correctly
|
|
190
218
|
// we shouldn't fall back to the SPA page.
|
|
191
219
|
// In this case we want to let the timeout of the parent expire to provide the correct error message.
|
|
192
|
-
|
|
193
|
-
|
|
220
|
+
_e.sent();
|
|
221
|
+
_e.label = 2;
|
|
194
222
|
case 2:
|
|
223
|
+
log === null || log === void 0 ? void 0 : log("Silent SSO dedicated html file is not used, polyfilling the behavior by sending a message to the parent");
|
|
195
224
|
parent.postMessage(location.href, location.origin);
|
|
196
225
|
return [4 /*yield*/, new Promise(function () { })];
|
|
197
226
|
case 3:
|
|
198
|
-
|
|
199
|
-
|
|
227
|
+
_e.sent();
|
|
228
|
+
_e.label = 4;
|
|
200
229
|
case 4:
|
|
201
230
|
oidcClientTsUserManager = new oidc_client_ts_and_jwt_decode_1.UserManager({
|
|
202
231
|
"authority": issuerUri,
|
|
@@ -237,16 +266,18 @@ function createOidc(params) {
|
|
|
237
266
|
RESULT_OMIT_RESERVED_QUERY_PARAM_NAME = "oidc-spa_result_omit";
|
|
238
267
|
EXTRA_QUERY_PARAMS_BACK_FROM_AUTH_SERVER_RESERVED_QUERY_PARAM_NAME = "oidc-spa_intent";
|
|
239
268
|
loginOrGoToAuthServer = function (params) { return __awaiter(_this, void 0, void 0, function () {
|
|
240
|
-
var extraQueryParams_fromLoginFn, redirectUrl, transformUrlBeforeRedirect_fromLoginFn, rest, callback_1, redirect_uri, URL_1;
|
|
269
|
+
var extraQueryParams_fromLoginFn, redirectUrl, transformUrlBeforeRedirect_fromLoginFn, rest, callback_1, redirect_uri, URL_1, redirectMethod;
|
|
241
270
|
return __generator(this, function (_a) {
|
|
242
271
|
switch (_a.label) {
|
|
243
272
|
case 0:
|
|
244
273
|
extraQueryParams_fromLoginFn = params.extraQueryParams, redirectUrl = params.redirectUrl, transformUrlBeforeRedirect_fromLoginFn = params.transformUrlBeforeRedirect, rest = __rest(params, ["extraQueryParams", "redirectUrl", "transformUrlBeforeRedirect"]);
|
|
274
|
+
log === null || log === void 0 ? void 0 : log("Calling loginOrGoToAuthServer", { params: params });
|
|
245
275
|
login_only: {
|
|
246
276
|
if (rest.action !== "login") {
|
|
247
277
|
break login_only;
|
|
248
278
|
}
|
|
249
279
|
if (hasLoginBeenCalled) {
|
|
280
|
+
log === null || log === void 0 ? void 0 : log("login() has already been called, ignoring the call");
|
|
250
281
|
return [2 /*return*/, new Promise(function () { })];
|
|
251
282
|
}
|
|
252
283
|
hasLoginBeenCalled = true;
|
|
@@ -261,19 +292,24 @@ function createOidc(params) {
|
|
|
261
292
|
callback_1 = function () {
|
|
262
293
|
if (document.visibilityState === "visible") {
|
|
263
294
|
document.removeEventListener("visibilitychange", callback_1);
|
|
295
|
+
log === null || log === void 0 ? void 0 : log("We came back from the login pages and the state of the app has been restored");
|
|
264
296
|
if (rest.doesCurrentHrefRequiresAuth) {
|
|
265
297
|
if (lastPublicRoute !== undefined) {
|
|
298
|
+
log === null || log === void 0 ? void 0 : log("Loading last public route: ".concat(lastPublicRoute));
|
|
266
299
|
window.location.href = lastPublicRoute;
|
|
267
300
|
}
|
|
268
301
|
else {
|
|
302
|
+
log === null || log === void 0 ? void 0 : log("We don't know the last public route, navigating back in history");
|
|
269
303
|
window.history.back();
|
|
270
304
|
}
|
|
271
305
|
}
|
|
272
306
|
else {
|
|
307
|
+
log === null || log === void 0 ? void 0 : log("The current page doesn't require auth, we don't need to reload");
|
|
273
308
|
hasLoginBeenCalled = false;
|
|
274
309
|
}
|
|
275
310
|
}
|
|
276
311
|
};
|
|
312
|
+
log === null || log === void 0 ? void 0 : log("Start listening to visibility change event");
|
|
277
313
|
document.addEventListener("visibilitychange", callback_1);
|
|
278
314
|
}
|
|
279
315
|
redirect_uri = (function () {
|
|
@@ -335,6 +371,7 @@ function createOidc(params) {
|
|
|
335
371
|
}
|
|
336
372
|
return url;
|
|
337
373
|
})();
|
|
374
|
+
log === null || log === void 0 ? void 0 : log("redirect_uri: ".concat(redirect_uri));
|
|
338
375
|
//NOTE: We know there is a extraQueryParameter option but it doesn't allow
|
|
339
376
|
// to control the encoding so we have to highjack global URL Class that is
|
|
340
377
|
// used internally by oidc-client-ts. It's save to do so since this is the
|
|
@@ -405,19 +442,18 @@ function createOidc(params) {
|
|
|
405
442
|
};
|
|
406
443
|
Object.defineProperty(window, "URL", { "value": URL_1 });
|
|
407
444
|
}
|
|
445
|
+
redirectMethod = (function () {
|
|
446
|
+
switch (rest.action) {
|
|
447
|
+
case "login":
|
|
448
|
+
return rest.doesCurrentHrefRequiresAuth ? "replace" : "assign";
|
|
449
|
+
case "go to auth server":
|
|
450
|
+
return "assign";
|
|
451
|
+
}
|
|
452
|
+
})();
|
|
453
|
+
log === null || log === void 0 ? void 0 : log("redirectMethod: ".concat(redirectMethod));
|
|
408
454
|
return [4 /*yield*/, oidcClientTsUserManager.signinRedirect({
|
|
409
455
|
redirect_uri: redirect_uri,
|
|
410
|
-
|
|
411
|
-
// This is what happens when the user gave up the login process.
|
|
412
|
-
// We want to that to redirect to the last public page.
|
|
413
|
-
"redirectMethod": (function () {
|
|
414
|
-
switch (rest.action) {
|
|
415
|
-
case "login":
|
|
416
|
-
return rest.doesCurrentHrefRequiresAuth ? "replace" : "assign";
|
|
417
|
-
case "go to auth server":
|
|
418
|
-
return "assign";
|
|
419
|
-
}
|
|
420
|
-
})()
|
|
456
|
+
redirectMethod: redirectMethod
|
|
421
457
|
})];
|
|
422
458
|
case 1:
|
|
423
459
|
_a.sent();
|
|
@@ -427,42 +463,47 @@ function createOidc(params) {
|
|
|
427
463
|
}); };
|
|
428
464
|
return [4 /*yield*/, (function getUser() {
|
|
429
465
|
return __awaiter(this, void 0, void 0, function () {
|
|
430
|
-
var
|
|
466
|
+
var url_2, queryParameterNames_toCleanFromHref_1, name_3, result, loginSuccessUrl, missingMandatoryParams, PARAMS_TO_RETRIEVE_FROM_SUCCESSFUL_LOGIN_1, PARAMS_TO_RETRIEVE_FROM_SUCCESSFUL_LOGIN_1_1, name_4, result, result, extraQueryParams_backFromAuthServer, name_5, result, queryParamsNamesToOmit_backFromAuthServer, name_6, result, result_backFromAuthServer, values, _a, _b, _c, name_7, value, result, count, queryParameterNames_stillOnHref, oidcClientTsUser, error_1, oidcClientTsUser, error_2, dLoginSuccessUrl_1, timeoutDelayMs_1, timeout_1, listener_1, loginSuccessUrl, oidcClientTsUser, error_3;
|
|
431
467
|
var e_2, _d, e_3, _e;
|
|
432
468
|
var _this = this;
|
|
433
469
|
return __generator(this, function (_f) {
|
|
434
470
|
switch (_f.label) {
|
|
435
471
|
case 0:
|
|
436
|
-
|
|
472
|
+
url_2 = window.location.href;
|
|
473
|
+
queryParameterNames_toCleanFromHref_1 = new Set();
|
|
437
474
|
{
|
|
475
|
+
name_3 = CONFIG_HASH_RESERVED_QUERY_PARAM_NAME;
|
|
476
|
+
queryParameterNames_toCleanFromHref_1.add(name_3);
|
|
438
477
|
result = (0, urlQueryParams_1.retrieveQueryParamFromUrl)({
|
|
439
|
-
|
|
440
|
-
url:
|
|
478
|
+
name: name_3,
|
|
479
|
+
url: url_2
|
|
441
480
|
});
|
|
442
481
|
if (!result.wasPresent || result.value !== configHash) {
|
|
443
|
-
return [3 /*break*/,
|
|
482
|
+
return [3 /*break*/, 8];
|
|
444
483
|
}
|
|
445
|
-
|
|
484
|
+
url_2 = result.newUrl;
|
|
446
485
|
}
|
|
486
|
+
log === null || log === void 0 ? void 0 : log("Back from the auth server, reading the query params to initialize the auth");
|
|
447
487
|
loginSuccessUrl = "https://dummy.com";
|
|
448
488
|
missingMandatoryParams = [];
|
|
449
489
|
try {
|
|
450
490
|
for (PARAMS_TO_RETRIEVE_FROM_SUCCESSFUL_LOGIN_1 = __values(PARAMS_TO_RETRIEVE_FROM_SUCCESSFUL_LOGIN), PARAMS_TO_RETRIEVE_FROM_SUCCESSFUL_LOGIN_1_1 = PARAMS_TO_RETRIEVE_FROM_SUCCESSFUL_LOGIN_1.next(); !PARAMS_TO_RETRIEVE_FROM_SUCCESSFUL_LOGIN_1_1.done; PARAMS_TO_RETRIEVE_FROM_SUCCESSFUL_LOGIN_1_1 = PARAMS_TO_RETRIEVE_FROM_SUCCESSFUL_LOGIN_1.next()) {
|
|
451
|
-
|
|
452
|
-
|
|
491
|
+
name_4 = PARAMS_TO_RETRIEVE_FROM_SUCCESSFUL_LOGIN_1_1.value;
|
|
492
|
+
queryParameterNames_toCleanFromHref_1.add(name_4);
|
|
493
|
+
result = (0, urlQueryParams_1.retrieveQueryParamFromUrl)({ name: name_4, url: url_2 });
|
|
453
494
|
if (!result.wasPresent) {
|
|
454
|
-
if (
|
|
495
|
+
if (name_4 === "iss") {
|
|
455
496
|
continue;
|
|
456
497
|
}
|
|
457
|
-
missingMandatoryParams.push(
|
|
498
|
+
missingMandatoryParams.push(name_4);
|
|
458
499
|
continue;
|
|
459
500
|
}
|
|
460
501
|
loginSuccessUrl = (0, urlQueryParams_1.addQueryParamToUrl)({
|
|
461
502
|
"url": loginSuccessUrl,
|
|
462
|
-
"name":
|
|
503
|
+
"name": name_4,
|
|
463
504
|
"value": result.value
|
|
464
505
|
}).newUrl;
|
|
465
|
-
|
|
506
|
+
url_2 = result.newUrl;
|
|
466
507
|
}
|
|
467
508
|
}
|
|
468
509
|
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
@@ -473,7 +514,7 @@ function createOidc(params) {
|
|
|
473
514
|
finally { if (e_2) throw e_2.error; }
|
|
474
515
|
}
|
|
475
516
|
{
|
|
476
|
-
result = (0, urlQueryParams_1.retrieveQueryParamFromUrl)({ "name": "error", url:
|
|
517
|
+
result = (0, urlQueryParams_1.retrieveQueryParamFromUrl)({ "name": "error", url: url_2 });
|
|
477
518
|
if (result.wasPresent) {
|
|
478
519
|
throw new Error([
|
|
479
520
|
"The OIDC server responded with an error passed as query parameter after the login process",
|
|
@@ -483,40 +524,45 @@ function createOidc(params) {
|
|
|
483
524
|
}
|
|
484
525
|
extraQueryParams_backFromAuthServer = void 0;
|
|
485
526
|
{
|
|
527
|
+
name_5 = EXTRA_QUERY_PARAMS_BACK_FROM_AUTH_SERVER_RESERVED_QUERY_PARAM_NAME;
|
|
528
|
+
queryParameterNames_toCleanFromHref_1.add(name_5);
|
|
486
529
|
result = (0, urlQueryParams_1.retrieveQueryParamFromUrl)({
|
|
487
|
-
|
|
488
|
-
url:
|
|
530
|
+
name: name_5,
|
|
531
|
+
url: url_2
|
|
489
532
|
});
|
|
490
533
|
(0, tsafe_2.assert)(result.wasPresent);
|
|
491
|
-
|
|
534
|
+
url_2 = result.newUrl;
|
|
492
535
|
extraQueryParams_backFromAuthServer = JSON.parse((0, base64_1.decodeBase64)(result.value));
|
|
493
536
|
}
|
|
494
537
|
queryParamsNamesToOmit_backFromAuthServer = void 0;
|
|
495
538
|
{
|
|
539
|
+
name_6 = RESULT_OMIT_RESERVED_QUERY_PARAM_NAME;
|
|
540
|
+
queryParameterNames_toCleanFromHref_1.add(name_6);
|
|
496
541
|
result = (0, urlQueryParams_1.retrieveQueryParamFromUrl)({
|
|
497
|
-
|
|
498
|
-
url:
|
|
542
|
+
name: name_6,
|
|
543
|
+
url: url_2
|
|
499
544
|
});
|
|
500
545
|
(0, tsafe_2.assert)(result.wasPresent);
|
|
501
|
-
|
|
546
|
+
url_2 = result.newUrl;
|
|
502
547
|
queryParamsNamesToOmit_backFromAuthServer = JSON.parse((0, base64_1.decodeBase64)(result.value));
|
|
503
548
|
}
|
|
504
549
|
result_backFromAuthServer = {};
|
|
505
550
|
{
|
|
506
|
-
values = (0, urlQueryParams_1.retrieveAllQueryParamFromUrl)({ url:
|
|
551
|
+
values = (0, urlQueryParams_1.retrieveAllQueryParamFromUrl)({ url: url_2 }).values;
|
|
507
552
|
try {
|
|
508
553
|
for (_a = __values(Object.entries(values)), _b = _a.next(); !_b.done; _b = _a.next()) {
|
|
509
|
-
_c = __read(_b.value, 2),
|
|
510
|
-
if (queryParamsNamesToOmit_backFromAuthServer.includes(
|
|
554
|
+
_c = __read(_b.value, 2), name_7 = _c[0], value = _c[1];
|
|
555
|
+
if (queryParamsNamesToOmit_backFromAuthServer.includes(name_7)) {
|
|
511
556
|
continue;
|
|
512
557
|
}
|
|
513
|
-
|
|
558
|
+
queryParameterNames_toCleanFromHref_1.add(name_7);
|
|
559
|
+
result_backFromAuthServer[name_7] = value;
|
|
514
560
|
result = (0, urlQueryParams_1.retrieveQueryParamFromUrl)({
|
|
515
|
-
name:
|
|
516
|
-
url:
|
|
561
|
+
name: name_7,
|
|
562
|
+
url: url_2
|
|
517
563
|
});
|
|
518
564
|
(0, tsafe_2.assert)(result.wasPresent);
|
|
519
|
-
|
|
565
|
+
url_2 = result.newUrl;
|
|
520
566
|
}
|
|
521
567
|
}
|
|
522
568
|
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
@@ -527,7 +573,42 @@ function createOidc(params) {
|
|
|
527
573
|
finally { if (e_3) throw e_3.error; }
|
|
528
574
|
}
|
|
529
575
|
}
|
|
530
|
-
|
|
576
|
+
log === null || log === void 0 ? void 0 : log("Cleaning the url from the OIDC query parameters");
|
|
577
|
+
count = 0;
|
|
578
|
+
_f.label = 1;
|
|
579
|
+
case 1:
|
|
580
|
+
if (!true) return [3 /*break*/, 3];
|
|
581
|
+
window.history.pushState(null, "", url_2);
|
|
582
|
+
return [4 /*yield*/, new Promise(function (resolve) { return (0, worker_timers_1.setTimeout)(resolve, 0); })];
|
|
583
|
+
case 2:
|
|
584
|
+
_f.sent();
|
|
585
|
+
queryParameterNames_stillOnHref = Object.keys((0, urlQueryParams_1.retrieveAllQueryParamFromUrl)({ "url": window.location.href }).values).filter(function (name) { return queryParameterNames_toCleanFromHref_1.has(name); });
|
|
586
|
+
if (queryParameterNames_stillOnHref.length === 0) {
|
|
587
|
+
return [3 /*break*/, 3];
|
|
588
|
+
}
|
|
589
|
+
if (count === 5) {
|
|
590
|
+
throw new Error([
|
|
591
|
+
"Failed to clean the OIDC query parameters from the",
|
|
592
|
+
"url with history.pushState after ".concat(count, " attempts")
|
|
593
|
+
].join(" "));
|
|
594
|
+
}
|
|
595
|
+
log === null || log === void 0 ? void 0 : log([
|
|
596
|
+
"Some oidc query params are still on the location.href after being cleaned",
|
|
597
|
+
"They where probably added back by an external library. Retrying to remove them...\n",
|
|
598
|
+
"Params still present: ".concat(queryParameterNames_stillOnHref.join(", "))
|
|
599
|
+
].join(" "));
|
|
600
|
+
url_2 = window.location.href;
|
|
601
|
+
queryParameterNames_stillOnHref.forEach(function (name) {
|
|
602
|
+
var result = (0, urlQueryParams_1.retrieveQueryParamFromUrl)({
|
|
603
|
+
name: name,
|
|
604
|
+
url: url_2
|
|
605
|
+
});
|
|
606
|
+
(0, tsafe_2.assert)(result.wasPresent);
|
|
607
|
+
url_2 = result.newUrl;
|
|
608
|
+
});
|
|
609
|
+
count++;
|
|
610
|
+
return [3 /*break*/, 1];
|
|
611
|
+
case 3:
|
|
531
612
|
if (missingMandatoryParams.length !== 0) {
|
|
532
613
|
throw new Error([
|
|
533
614
|
"After the login process the following mandatory OIDC query parameters where missing:",
|
|
@@ -535,14 +616,14 @@ function createOidc(params) {
|
|
|
535
616
|
].join(" "));
|
|
536
617
|
}
|
|
537
618
|
oidcClientTsUser = undefined;
|
|
538
|
-
_f.label =
|
|
539
|
-
case
|
|
540
|
-
_f.trys.push([
|
|
619
|
+
_f.label = 4;
|
|
620
|
+
case 4:
|
|
621
|
+
_f.trys.push([4, 6, , 7]);
|
|
541
622
|
return [4 /*yield*/, oidcClientTsUserManager.signinRedirectCallback(loginSuccessUrl)];
|
|
542
|
-
case
|
|
623
|
+
case 5:
|
|
543
624
|
oidcClientTsUser = _f.sent();
|
|
544
|
-
return [3 /*break*/,
|
|
545
|
-
case
|
|
625
|
+
return [3 /*break*/, 7];
|
|
626
|
+
case 6:
|
|
546
627
|
error_1 = _f.sent();
|
|
547
628
|
(0, tsafe_2.assert)(error_1 instanceof Error);
|
|
548
629
|
if (error_1.message === "Failed to fetch") {
|
|
@@ -560,7 +641,7 @@ function createOidc(params) {
|
|
|
560
641
|
//NOTE: The user has likely pressed the back button just after logging in.
|
|
561
642
|
//UPDATE: I don't remember how to reproduce this case and I don't know if it's still relevant.
|
|
562
643
|
return [2 /*return*/, undefined];
|
|
563
|
-
case
|
|
644
|
+
case 7: return [2 /*return*/, {
|
|
564
645
|
"authMethod": "back from auth server",
|
|
565
646
|
oidcClientTsUser: oidcClientTsUser,
|
|
566
647
|
"backFromAuthServer": {
|
|
@@ -568,20 +649,21 @@ function createOidc(params) {
|
|
|
568
649
|
"result": result_backFromAuthServer
|
|
569
650
|
}
|
|
570
651
|
}];
|
|
571
|
-
case
|
|
572
|
-
case
|
|
652
|
+
case 8: return [4 /*yield*/, oidcClientTsUserManager.getUser()];
|
|
653
|
+
case 9:
|
|
573
654
|
oidcClientTsUser = _f.sent();
|
|
574
655
|
if (oidcClientTsUser === null) {
|
|
575
|
-
return [3 /*break*/,
|
|
656
|
+
return [3 /*break*/, 14];
|
|
576
657
|
}
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
658
|
+
log === null || log === void 0 ? void 0 : log("Restoring the auth from the session storage");
|
|
659
|
+
_f.label = 10;
|
|
660
|
+
case 10:
|
|
661
|
+
_f.trys.push([10, 12, , 13]);
|
|
580
662
|
return [4 /*yield*/, oidcClientTsUserManager.signinSilent()];
|
|
581
|
-
case
|
|
663
|
+
case 11:
|
|
582
664
|
_f.sent();
|
|
583
|
-
return [3 /*break*/,
|
|
584
|
-
case
|
|
665
|
+
return [3 /*break*/, 13];
|
|
666
|
+
case 12:
|
|
585
667
|
error_2 = _f.sent();
|
|
586
668
|
(0, tsafe_2.assert)(error_2 instanceof Error);
|
|
587
669
|
if (error_2.message === "Failed to fetch") {
|
|
@@ -598,11 +680,12 @@ function createOidc(params) {
|
|
|
598
680
|
});
|
|
599
681
|
}
|
|
600
682
|
return [2 /*return*/, undefined];
|
|
601
|
-
case
|
|
683
|
+
case 13: return [2 /*return*/, {
|
|
602
684
|
"authMethod": "session storage",
|
|
603
685
|
oidcClientTsUser: oidcClientTsUser
|
|
604
686
|
}];
|
|
605
|
-
case
|
|
687
|
+
case 14:
|
|
688
|
+
log === null || log === void 0 ? void 0 : log("Trying to restore the auth from the httpOnly cookie (silent signin with iframe)");
|
|
606
689
|
dLoginSuccessUrl_1 = new Deferred_1.Deferred();
|
|
607
690
|
timeoutDelayMs_1 = (function () {
|
|
608
691
|
var downlinkAndRtt = (0, getDownlinkAndRtt_1.getDownlinkAndRtt)();
|
|
@@ -777,6 +860,7 @@ function createOidc(params) {
|
|
|
777
860
|
{
|
|
778
861
|
var result = (0, urlQueryParams_1.retrieveQueryParamFromUrl)({ "name": "error", url: url });
|
|
779
862
|
if (result.wasPresent) {
|
|
863
|
+
log === null || log === void 0 ? void 0 : log("The auth server responded with: ".concat(result.value));
|
|
780
864
|
dLoginSuccessUrl_1.resolve(undefined);
|
|
781
865
|
return;
|
|
782
866
|
}
|
|
@@ -785,18 +869,18 @@ function createOidc(params) {
|
|
|
785
869
|
var missingMandatoryParams = [];
|
|
786
870
|
try {
|
|
787
871
|
for (var PARAMS_TO_RETRIEVE_FROM_SUCCESSFUL_LOGIN_2 = __values(PARAMS_TO_RETRIEVE_FROM_SUCCESSFUL_LOGIN), PARAMS_TO_RETRIEVE_FROM_SUCCESSFUL_LOGIN_2_1 = PARAMS_TO_RETRIEVE_FROM_SUCCESSFUL_LOGIN_2.next(); !PARAMS_TO_RETRIEVE_FROM_SUCCESSFUL_LOGIN_2_1.done; PARAMS_TO_RETRIEVE_FROM_SUCCESSFUL_LOGIN_2_1 = PARAMS_TO_RETRIEVE_FROM_SUCCESSFUL_LOGIN_2.next()) {
|
|
788
|
-
var
|
|
789
|
-
var result = (0, urlQueryParams_1.retrieveQueryParamFromUrl)({ name:
|
|
872
|
+
var name_8 = PARAMS_TO_RETRIEVE_FROM_SUCCESSFUL_LOGIN_2_1.value;
|
|
873
|
+
var result = (0, urlQueryParams_1.retrieveQueryParamFromUrl)({ name: name_8, url: url });
|
|
790
874
|
if (!result.wasPresent) {
|
|
791
|
-
if (
|
|
875
|
+
if (name_8 === "iss") {
|
|
792
876
|
continue;
|
|
793
877
|
}
|
|
794
|
-
missingMandatoryParams.push(
|
|
878
|
+
missingMandatoryParams.push(name_8);
|
|
795
879
|
continue;
|
|
796
880
|
}
|
|
797
881
|
loginSuccessUrl = (0, urlQueryParams_1.addQueryParamToUrl)({
|
|
798
882
|
"url": loginSuccessUrl,
|
|
799
|
-
"name":
|
|
883
|
+
"name": name_8,
|
|
800
884
|
"value": result.value
|
|
801
885
|
}).newUrl;
|
|
802
886
|
}
|
|
@@ -832,20 +916,21 @@ function createOidc(params) {
|
|
|
832
916
|
}
|
|
833
917
|
});
|
|
834
918
|
return [4 /*yield*/, dLoginSuccessUrl_1.pr];
|
|
835
|
-
case
|
|
919
|
+
case 15:
|
|
836
920
|
loginSuccessUrl = _f.sent();
|
|
837
921
|
if (loginSuccessUrl === undefined) {
|
|
838
|
-
|
|
922
|
+
log === null || log === void 0 ? void 0 : log("There is no active session");
|
|
923
|
+
return [3 /*break*/, 20];
|
|
839
924
|
}
|
|
840
925
|
oidcClientTsUser = undefined;
|
|
841
|
-
_f.label =
|
|
842
|
-
case
|
|
843
|
-
_f.trys.push([
|
|
926
|
+
_f.label = 16;
|
|
927
|
+
case 16:
|
|
928
|
+
_f.trys.push([16, 18, , 19]);
|
|
844
929
|
return [4 /*yield*/, oidcClientTsUserManager.signinRedirectCallback(loginSuccessUrl)];
|
|
845
|
-
case
|
|
930
|
+
case 17:
|
|
846
931
|
oidcClientTsUser = _f.sent();
|
|
847
|
-
return [3 /*break*/,
|
|
848
|
-
case
|
|
932
|
+
return [3 /*break*/, 19];
|
|
933
|
+
case 18:
|
|
849
934
|
error_3 = _f.sent();
|
|
850
935
|
(0, tsafe_2.assert)(error_3 instanceof Error);
|
|
851
936
|
if (error_3.message === "Failed to fetch") {
|
|
@@ -861,11 +946,13 @@ function createOidc(params) {
|
|
|
861
946
|
});
|
|
862
947
|
}
|
|
863
948
|
throw error_3;
|
|
864
|
-
case
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
949
|
+
case 19:
|
|
950
|
+
log === null || log === void 0 ? void 0 : log("Successful silent signed in");
|
|
951
|
+
return [2 /*return*/, {
|
|
952
|
+
"authMethod": "silent signin",
|
|
953
|
+
oidcClientTsUser: oidcClientTsUser
|
|
954
|
+
}];
|
|
955
|
+
case 20: return [2 /*return*/, undefined];
|
|
869
956
|
}
|
|
870
957
|
});
|
|
871
958
|
});
|
|
@@ -891,7 +978,7 @@ function createOidc(params) {
|
|
|
891
978
|
return error;
|
|
892
979
|
})];
|
|
893
980
|
case 5:
|
|
894
|
-
resultOfLoginProcess =
|
|
981
|
+
resultOfLoginProcess = _e.sent();
|
|
895
982
|
common = {
|
|
896
983
|
"params": {
|
|
897
984
|
issuerUri: issuerUri,
|
|
@@ -899,6 +986,7 @@ function createOidc(params) {
|
|
|
899
986
|
}
|
|
900
987
|
};
|
|
901
988
|
if (resultOfLoginProcess instanceof Error) {
|
|
989
|
+
log === null || log === void 0 ? void 0 : log("User not logged in and there was an initialization error");
|
|
902
990
|
error = resultOfLoginProcess;
|
|
903
991
|
initializationError = error instanceof OidcInitializationError_1.OidcInitializationError
|
|
904
992
|
? error
|
|
@@ -922,15 +1010,17 @@ function createOidc(params) {
|
|
|
922
1010
|
return [2 /*return*/, oidc_1];
|
|
923
1011
|
}
|
|
924
1012
|
if (!(resultOfLoginProcess === undefined)) return [3 /*break*/, 8];
|
|
1013
|
+
log === null || log === void 0 ? void 0 : log("User not logged in");
|
|
925
1014
|
if (!isAuthGloballyRequired) return [3 /*break*/, 7];
|
|
1015
|
+
log === null || log === void 0 ? void 0 : log("Authentication is required everywhere on this app, redirecting to the login page");
|
|
926
1016
|
return [4 /*yield*/, loginOrGoToAuthServer({
|
|
927
1017
|
"action": "login",
|
|
928
1018
|
"doesCurrentHrefRequiresAuth": true,
|
|
929
1019
|
"redirectUrl": postLoginRedirectUrl
|
|
930
1020
|
})];
|
|
931
1021
|
case 6:
|
|
932
|
-
|
|
933
|
-
|
|
1022
|
+
_e.sent();
|
|
1023
|
+
_e.label = 7;
|
|
934
1024
|
case 7:
|
|
935
1025
|
startTrackingLastPublicRoute();
|
|
936
1026
|
oidc_2 = (0, tsafe_1.id)(__assign(__assign({}, common), { "isUserLoggedIn": false, "login": function (params) { return loginOrGoToAuthServer(__assign({ "action": "login" }, params)); }, "initializationError": undefined }));
|
|
@@ -938,6 +1028,7 @@ function createOidc(params) {
|
|
|
938
1028
|
// @ts-expect-error: We know what we are doing.
|
|
939
1029
|
return [2 /*return*/, oidc_2];
|
|
940
1030
|
case 8:
|
|
1031
|
+
log === null || log === void 0 ? void 0 : log("User logged in");
|
|
941
1032
|
currentTokens = resultOfLoginProcess.tokens;
|
|
942
1033
|
autoLogoutCountdownTickCallbacks = new Set();
|
|
943
1034
|
onTokenChanges = new Set();
|
|
@@ -1053,27 +1144,37 @@ function createOidc(params) {
|
|
|
1053
1144
|
// This can happen if the tokenExpirationTime is more than 24.8 days in the future.
|
|
1054
1145
|
Math.pow(2, 31) - 1);
|
|
1055
1146
|
if (msBeforeExpiration < 0) {
|
|
1147
|
+
log === null || log === void 0 ? void 0 : log("Token has already expired");
|
|
1056
1148
|
return 0;
|
|
1057
1149
|
}
|
|
1058
1150
|
return msBeforeExpiration;
|
|
1059
1151
|
};
|
|
1060
1152
|
(function scheduleRenew() {
|
|
1061
1153
|
var _this = this;
|
|
1154
|
+
var msBeforeExpiration = getMsBeforeExpiration_1();
|
|
1062
1155
|
// NOTE: We refresh the token 25 seconds before it expires.
|
|
1063
1156
|
// If the token expiration time is less than 25 seconds we refresh the token when
|
|
1064
1157
|
// only 1/10 of the token time is left.
|
|
1065
|
-
var renewMsBeforeExpires = Math.min(25000,
|
|
1158
|
+
var renewMsBeforeExpires = Math.min(25000, msBeforeExpiration * 0.1);
|
|
1159
|
+
log === null || log === void 0 ? void 0 : log([
|
|
1160
|
+
"".concat(Math.round(msBeforeExpiration / 1000), " seconds"),
|
|
1161
|
+
"before expiration of the access token.",
|
|
1162
|
+
"Scheduling renewal ".concat(Math.round(renewMsBeforeExpires / 1000), " seconds before expiration")
|
|
1163
|
+
].join(" "));
|
|
1066
1164
|
var timer = (0, worker_timers_1.setTimeout)(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
1067
1165
|
var _a;
|
|
1068
1166
|
return __generator(this, function (_b) {
|
|
1069
1167
|
switch (_b.label) {
|
|
1070
1168
|
case 0:
|
|
1071
|
-
|
|
1072
|
-
|
|
1169
|
+
log === null || log === void 0 ? void 0 : log("Renewing the access token now as it will expires in ".concat(Math.round(renewMsBeforeExpires / 1000), " seconds"));
|
|
1170
|
+
_b.label = 1;
|
|
1073
1171
|
case 1:
|
|
1074
|
-
_b.
|
|
1075
|
-
return [
|
|
1172
|
+
_b.trys.push([1, 3, , 5]);
|
|
1173
|
+
return [4 /*yield*/, oidc.renewTokens()];
|
|
1076
1174
|
case 2:
|
|
1175
|
+
_b.sent();
|
|
1176
|
+
return [3 /*break*/, 5];
|
|
1177
|
+
case 3:
|
|
1077
1178
|
_a = _b.sent();
|
|
1078
1179
|
// NOTE: Here semantically `"doesCurrentHrefRequiresAuth": false` is wrong.
|
|
1079
1180
|
// The user may very well be on a page that require auth.
|
|
@@ -1085,7 +1186,7 @@ function createOidc(params) {
|
|
|
1085
1186
|
"action": "login",
|
|
1086
1187
|
"doesCurrentHrefRequiresAuth": false
|
|
1087
1188
|
})];
|
|
1088
|
-
case
|
|
1189
|
+
case 4:
|
|
1089
1190
|
// NOTE: Here semantically `"doesCurrentHrefRequiresAuth": false` is wrong.
|
|
1090
1191
|
// The user may very well be on a page that require auth.
|
|
1091
1192
|
// However there's no way to enforce the browser to redirect back to
|
|
@@ -1093,11 +1194,11 @@ function createOidc(params) {
|
|
|
1093
1194
|
// This is due to the fact that pushing to history only works if it's
|
|
1094
1195
|
// triggered by a user interaction.
|
|
1095
1196
|
_b.sent();
|
|
1096
|
-
return [3 /*break*/,
|
|
1097
|
-
case
|
|
1197
|
+
return [3 /*break*/, 5];
|
|
1198
|
+
case 5: return [2 /*return*/];
|
|
1098
1199
|
}
|
|
1099
1200
|
});
|
|
1100
|
-
}); },
|
|
1201
|
+
}); }, msBeforeExpiration - renewMsBeforeExpires);
|
|
1101
1202
|
var tokenChangeUnsubscribe = oidc.subscribeToTokensChange(function () {
|
|
1102
1203
|
(0, worker_timers_1.clearTimeout)(timer);
|
|
1103
1204
|
tokenChangeUnsubscribe();
|
package/oidc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oidc.js","sourceRoot":"","sources":["src/oidc.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"oidc.js","sourceRoot":"","sources":["src/oidc.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/oidc.ts
CHANGED
|
@@ -22,6 +22,9 @@ import { setTimeout, clearTimeout } from "./vendor/frontend/worker-timers";
|
|
|
22
22
|
import { OidcInitializationError } from "./OidcInitializationError";
|
|
23
23
|
import { encodeBase64, decodeBase64 } from "./tools/base64";
|
|
24
24
|
|
|
25
|
+
// NOTE: Replaced at build time
|
|
26
|
+
const VERSION = "{{OIDC_SPA_VERSION}}";
|
|
27
|
+
|
|
25
28
|
export declare type Oidc<DecodedIdToken extends Record<string, unknown> = Record<string, unknown>> =
|
|
26
29
|
| Oidc.LoggedIn<DecodedIdToken>
|
|
27
30
|
| Oidc.NotLoggedIn;
|
|
@@ -184,6 +187,7 @@ export type ParamsOfCreateOidc<
|
|
|
184
187
|
|
|
185
188
|
autoLogoutParams?: Parameters<Oidc.LoggedIn<any>["logout"]>[0];
|
|
186
189
|
isAuthGloballyRequired?: IsAuthGloballyRequired;
|
|
190
|
+
doEnableDebugLogs?: boolean;
|
|
187
191
|
};
|
|
188
192
|
|
|
189
193
|
let $isUserActive: StatefulObservable<boolean> | undefined = undefined;
|
|
@@ -210,9 +214,26 @@ export async function createOidc<
|
|
|
210
214
|
__unsafe_ssoSessionIdleSeconds,
|
|
211
215
|
autoLogoutParams = { "redirectTo": "current page" },
|
|
212
216
|
isAuthGloballyRequired = false,
|
|
213
|
-
postLoginRedirectUrl
|
|
217
|
+
postLoginRedirectUrl,
|
|
218
|
+
doEnableDebugLogs = false
|
|
214
219
|
} = params;
|
|
215
220
|
|
|
221
|
+
const log = (() => {
|
|
222
|
+
if (!doEnableDebugLogs) {
|
|
223
|
+
return undefined;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
return id<typeof console.log>((...[first, ...rest]) => {
|
|
227
|
+
const label = "oidc-spa";
|
|
228
|
+
|
|
229
|
+
if (typeof first === "string") {
|
|
230
|
+
console.log(...[`${label}: ${first}`, ...rest]);
|
|
231
|
+
} else {
|
|
232
|
+
console.log(...[`${label}:`, first, ...rest]);
|
|
233
|
+
}
|
|
234
|
+
});
|
|
235
|
+
})();
|
|
236
|
+
|
|
216
237
|
const getExtraQueryParams = (() => {
|
|
217
238
|
if (typeof extraQueryParamsOrGetter === "function") {
|
|
218
239
|
return extraQueryParamsOrGetter;
|
|
@@ -241,6 +262,8 @@ export async function createOidc<
|
|
|
241
262
|
`${issuerUri} ${clientId} ${clientSecret ?? ""} ${scopes.join(" ")}`
|
|
242
263
|
);
|
|
243
264
|
|
|
265
|
+
log?.(`Calling createOidc v${VERSION}`, { params, publicUrl, configHash });
|
|
266
|
+
|
|
244
267
|
use_previous_instance: {
|
|
245
268
|
const prOidc = prOidcByConfigHash.get(configHash);
|
|
246
269
|
|
|
@@ -248,6 +271,8 @@ export async function createOidc<
|
|
|
248
271
|
break use_previous_instance;
|
|
249
272
|
}
|
|
250
273
|
|
|
274
|
+
log?.("Using previous instance of oidc-spa");
|
|
275
|
+
|
|
251
276
|
console.warn(
|
|
252
277
|
[
|
|
253
278
|
`oidc-spa has been instantiated more than once with the same configuration.`,
|
|
@@ -274,6 +299,8 @@ export async function createOidc<
|
|
|
274
299
|
"redirectUri": `${publicUrl}/silent-sso.htm`
|
|
275
300
|
};
|
|
276
301
|
|
|
302
|
+
log?.("Wether we use a dedicated silent-sso.htm file or not", silentSso);
|
|
303
|
+
|
|
277
304
|
const IS_SILENT_SSO_RESERVED_QUERY_PARAM_NAME = "oidc-spa_silent_sso";
|
|
278
305
|
const CONFIG_HASH_RESERVED_QUERY_PARAM_NAME = "oidc-spa_config_hash";
|
|
279
306
|
|
|
@@ -299,12 +326,22 @@ export async function createOidc<
|
|
|
299
326
|
}
|
|
300
327
|
|
|
301
328
|
if (silentSso.hasDedicatedHtmlFile) {
|
|
329
|
+
log?.(
|
|
330
|
+
[
|
|
331
|
+
"User forgot to create the silent-sso.htm file or the web server is not serving it correctly",
|
|
332
|
+
"suspending forever"
|
|
333
|
+
].join(" ")
|
|
334
|
+
);
|
|
302
335
|
// Here the user forget to create the silent-sso.htm file or or the web server is not serving it correctly
|
|
303
336
|
// we shouldn't fall back to the SPA page.
|
|
304
337
|
// In this case we want to let the timeout of the parent expire to provide the correct error message.
|
|
305
338
|
await new Promise<never>(() => {});
|
|
306
339
|
}
|
|
307
340
|
|
|
341
|
+
log?.(
|
|
342
|
+
"Silent SSO dedicated html file is not used, polyfilling the behavior by sending a message to the parent"
|
|
343
|
+
);
|
|
344
|
+
|
|
308
345
|
parent.postMessage(location.href, location.origin);
|
|
309
346
|
|
|
310
347
|
await new Promise<never>(() => {});
|
|
@@ -367,12 +404,15 @@ export async function createOidc<
|
|
|
367
404
|
...rest
|
|
368
405
|
} = params;
|
|
369
406
|
|
|
407
|
+
log?.("Calling loginOrGoToAuthServer", { params });
|
|
408
|
+
|
|
370
409
|
login_only: {
|
|
371
410
|
if (rest.action !== "login") {
|
|
372
411
|
break login_only;
|
|
373
412
|
}
|
|
374
413
|
|
|
375
414
|
if (hasLoginBeenCalled) {
|
|
415
|
+
log?.("login() has already been called, ignoring the call");
|
|
376
416
|
return new Promise<never>(() => {});
|
|
377
417
|
}
|
|
378
418
|
|
|
@@ -391,17 +431,27 @@ export async function createOidc<
|
|
|
391
431
|
if (document.visibilityState === "visible") {
|
|
392
432
|
document.removeEventListener("visibilitychange", callback);
|
|
393
433
|
|
|
434
|
+
log?.(
|
|
435
|
+
"We came back from the login pages and the state of the app has been restored"
|
|
436
|
+
);
|
|
437
|
+
|
|
394
438
|
if (rest.doesCurrentHrefRequiresAuth) {
|
|
395
439
|
if (lastPublicRoute !== undefined) {
|
|
440
|
+
log?.(`Loading last public route: ${lastPublicRoute}`);
|
|
396
441
|
window.location.href = lastPublicRoute;
|
|
397
442
|
} else {
|
|
443
|
+
log?.("We don't know the last public route, navigating back in history");
|
|
398
444
|
window.history.back();
|
|
399
445
|
}
|
|
400
446
|
} else {
|
|
447
|
+
log?.("The current page doesn't require auth, we don't need to reload");
|
|
401
448
|
hasLoginBeenCalled = false;
|
|
402
449
|
}
|
|
403
450
|
}
|
|
404
451
|
};
|
|
452
|
+
|
|
453
|
+
log?.("Start listening to visibility change event");
|
|
454
|
+
|
|
405
455
|
document.addEventListener("visibilitychange", callback);
|
|
406
456
|
}
|
|
407
457
|
|
|
@@ -471,6 +521,8 @@ export async function createOidc<
|
|
|
471
521
|
return url;
|
|
472
522
|
})();
|
|
473
523
|
|
|
524
|
+
log?.(`redirect_uri: ${redirect_uri}`);
|
|
525
|
+
|
|
474
526
|
//NOTE: We know there is a extraQueryParameter option but it doesn't allow
|
|
475
527
|
// to control the encoding so we have to highjack global URL Class that is
|
|
476
528
|
// used internally by oidc-client-ts. It's save to do so since this is the
|
|
@@ -552,19 +604,23 @@ export async function createOidc<
|
|
|
552
604
|
Object.defineProperty(window, "URL", { "value": URL });
|
|
553
605
|
}
|
|
554
606
|
|
|
607
|
+
// NOTE: This is for the behavior when the use presses the back button on the login pages.
|
|
608
|
+
// This is what happens when the user gave up the login process.
|
|
609
|
+
// We want to that to redirect to the last public page.
|
|
610
|
+
const redirectMethod = (() => {
|
|
611
|
+
switch (rest.action) {
|
|
612
|
+
case "login":
|
|
613
|
+
return rest.doesCurrentHrefRequiresAuth ? "replace" : "assign";
|
|
614
|
+
case "go to auth server":
|
|
615
|
+
return "assign";
|
|
616
|
+
}
|
|
617
|
+
})();
|
|
618
|
+
|
|
619
|
+
log?.(`redirectMethod: ${redirectMethod}`);
|
|
620
|
+
|
|
555
621
|
await oidcClientTsUserManager.signinRedirect({
|
|
556
622
|
redirect_uri,
|
|
557
|
-
|
|
558
|
-
// This is what happens when the user gave up the login process.
|
|
559
|
-
// We want to that to redirect to the last public page.
|
|
560
|
-
"redirectMethod": (() => {
|
|
561
|
-
switch (rest.action) {
|
|
562
|
-
case "login":
|
|
563
|
-
return rest.doesCurrentHrefRequiresAuth ? "replace" : "assign";
|
|
564
|
-
case "go to auth server":
|
|
565
|
-
return "assign";
|
|
566
|
-
}
|
|
567
|
-
})()
|
|
623
|
+
redirectMethod
|
|
568
624
|
});
|
|
569
625
|
return new Promise<never>(() => {});
|
|
570
626
|
};
|
|
@@ -573,9 +629,15 @@ export async function createOidc<
|
|
|
573
629
|
read_successful_login_query_params: {
|
|
574
630
|
let url = window.location.href;
|
|
575
631
|
|
|
632
|
+
const queryParameterNames_toCleanFromHref = new Set<string>();
|
|
633
|
+
|
|
576
634
|
{
|
|
635
|
+
const name = CONFIG_HASH_RESERVED_QUERY_PARAM_NAME;
|
|
636
|
+
|
|
637
|
+
queryParameterNames_toCleanFromHref.add(name);
|
|
638
|
+
|
|
577
639
|
const result = retrieveQueryParamFromUrl({
|
|
578
|
-
|
|
640
|
+
name,
|
|
579
641
|
url
|
|
580
642
|
});
|
|
581
643
|
|
|
@@ -586,11 +648,15 @@ export async function createOidc<
|
|
|
586
648
|
url = result.newUrl;
|
|
587
649
|
}
|
|
588
650
|
|
|
651
|
+
log?.("Back from the auth server, reading the query params to initialize the auth");
|
|
652
|
+
|
|
589
653
|
let loginSuccessUrl = "https://dummy.com";
|
|
590
654
|
|
|
591
655
|
let missingMandatoryParams: string[] = [];
|
|
592
656
|
|
|
593
657
|
for (const name of PARAMS_TO_RETRIEVE_FROM_SUCCESSFUL_LOGIN) {
|
|
658
|
+
queryParameterNames_toCleanFromHref.add(name);
|
|
659
|
+
|
|
594
660
|
const result = retrieveQueryParamFromUrl({ name, url });
|
|
595
661
|
|
|
596
662
|
if (!result.wasPresent) {
|
|
@@ -626,8 +692,12 @@ export async function createOidc<
|
|
|
626
692
|
let extraQueryParams_backFromAuthServer;
|
|
627
693
|
|
|
628
694
|
{
|
|
695
|
+
const name = EXTRA_QUERY_PARAMS_BACK_FROM_AUTH_SERVER_RESERVED_QUERY_PARAM_NAME;
|
|
696
|
+
|
|
697
|
+
queryParameterNames_toCleanFromHref.add(name);
|
|
698
|
+
|
|
629
699
|
const result = retrieveQueryParamFromUrl({
|
|
630
|
-
|
|
700
|
+
name,
|
|
631
701
|
url
|
|
632
702
|
});
|
|
633
703
|
|
|
@@ -644,8 +714,12 @@ export async function createOidc<
|
|
|
644
714
|
let queryParamsNamesToOmit_backFromAuthServer;
|
|
645
715
|
|
|
646
716
|
{
|
|
717
|
+
const name = RESULT_OMIT_RESERVED_QUERY_PARAM_NAME;
|
|
718
|
+
|
|
719
|
+
queryParameterNames_toCleanFromHref.add(name);
|
|
720
|
+
|
|
647
721
|
const result = retrieveQueryParamFromUrl({
|
|
648
|
-
|
|
722
|
+
name,
|
|
649
723
|
url
|
|
650
724
|
});
|
|
651
725
|
|
|
@@ -667,6 +741,9 @@ export async function createOidc<
|
|
|
667
741
|
if (queryParamsNamesToOmit_backFromAuthServer.includes(name)) {
|
|
668
742
|
continue;
|
|
669
743
|
}
|
|
744
|
+
|
|
745
|
+
queryParameterNames_toCleanFromHref.add(name);
|
|
746
|
+
|
|
670
747
|
result_backFromAuthServer[name] = value;
|
|
671
748
|
|
|
672
749
|
const result = retrieveQueryParamFromUrl({
|
|
@@ -680,7 +757,57 @@ export async function createOidc<
|
|
|
680
757
|
}
|
|
681
758
|
}
|
|
682
759
|
|
|
683
|
-
|
|
760
|
+
log?.("Cleaning the url from the OIDC query parameters");
|
|
761
|
+
|
|
762
|
+
{
|
|
763
|
+
let count = 0;
|
|
764
|
+
|
|
765
|
+
while (true) {
|
|
766
|
+
window.history.pushState(null, "", url);
|
|
767
|
+
|
|
768
|
+
await new Promise(resolve => setTimeout(resolve, 0));
|
|
769
|
+
|
|
770
|
+
const queryParameterNames_stillOnHref = Object.keys(
|
|
771
|
+
retrieveAllQueryParamFromUrl({ "url": window.location.href }).values
|
|
772
|
+
).filter(name => queryParameterNames_toCleanFromHref.has(name));
|
|
773
|
+
|
|
774
|
+
if (queryParameterNames_stillOnHref.length === 0) {
|
|
775
|
+
break;
|
|
776
|
+
}
|
|
777
|
+
|
|
778
|
+
if (count === 5) {
|
|
779
|
+
throw new Error(
|
|
780
|
+
[
|
|
781
|
+
`Failed to clean the OIDC query parameters from the`,
|
|
782
|
+
`url with history.pushState after ${count} attempts`
|
|
783
|
+
].join(" ")
|
|
784
|
+
);
|
|
785
|
+
}
|
|
786
|
+
|
|
787
|
+
log?.(
|
|
788
|
+
[
|
|
789
|
+
`Some oidc query params are still on the location.href after being cleaned`,
|
|
790
|
+
`They where probably added back by an external library. Retrying to remove them...\n`,
|
|
791
|
+
`Params still present: ${queryParameterNames_stillOnHref.join(", ")}`
|
|
792
|
+
].join(" ")
|
|
793
|
+
);
|
|
794
|
+
|
|
795
|
+
url = window.location.href;
|
|
796
|
+
|
|
797
|
+
queryParameterNames_stillOnHref.forEach(name => {
|
|
798
|
+
const result = retrieveQueryParamFromUrl({
|
|
799
|
+
name,
|
|
800
|
+
url
|
|
801
|
+
});
|
|
802
|
+
|
|
803
|
+
assert(result.wasPresent);
|
|
804
|
+
|
|
805
|
+
url = result.newUrl;
|
|
806
|
+
});
|
|
807
|
+
|
|
808
|
+
count++;
|
|
809
|
+
}
|
|
810
|
+
}
|
|
684
811
|
|
|
685
812
|
if (missingMandatoryParams.length !== 0) {
|
|
686
813
|
throw new Error(
|
|
@@ -733,7 +860,11 @@ export async function createOidc<
|
|
|
733
860
|
break restore_from_session;
|
|
734
861
|
}
|
|
735
862
|
|
|
736
|
-
|
|
863
|
+
log?.("Restoring the auth from the session storage");
|
|
864
|
+
|
|
865
|
+
// Here the access token could be still valid but the session might have been invalidated
|
|
866
|
+
// on the server. For example if the logout failed to redirect to the app.
|
|
867
|
+
// We want to make sure that the session is still valid on the server side.
|
|
737
868
|
try {
|
|
738
869
|
await oidcClientTsUserManager.signinSilent();
|
|
739
870
|
} catch (error) {
|
|
@@ -763,6 +894,8 @@ export async function createOidc<
|
|
|
763
894
|
}
|
|
764
895
|
|
|
765
896
|
restore_from_http_only_cookie: {
|
|
897
|
+
log?.("Trying to restore the auth from the httpOnly cookie (silent signin with iframe)");
|
|
898
|
+
|
|
766
899
|
const dLoginSuccessUrl = new Deferred<string | undefined>();
|
|
767
900
|
|
|
768
901
|
const timeoutDelayMs = (() => {
|
|
@@ -937,6 +1070,7 @@ export async function createOidc<
|
|
|
937
1070
|
const result = retrieveQueryParamFromUrl({ "name": "error", url });
|
|
938
1071
|
|
|
939
1072
|
if (result.wasPresent) {
|
|
1073
|
+
log?.(`The auth server responded with: ${result.value}`);
|
|
940
1074
|
dLoginSuccessUrl.resolve(undefined);
|
|
941
1075
|
return;
|
|
942
1076
|
}
|
|
@@ -1001,6 +1135,7 @@ export async function createOidc<
|
|
|
1001
1135
|
const loginSuccessUrl = await dLoginSuccessUrl.pr;
|
|
1002
1136
|
|
|
1003
1137
|
if (loginSuccessUrl === undefined) {
|
|
1138
|
+
log?.("There is no active session");
|
|
1004
1139
|
break restore_from_http_only_cookie;
|
|
1005
1140
|
}
|
|
1006
1141
|
|
|
@@ -1027,6 +1162,8 @@ export async function createOidc<
|
|
|
1027
1162
|
throw error;
|
|
1028
1163
|
}
|
|
1029
1164
|
|
|
1165
|
+
log?.("Successful silent signed in");
|
|
1166
|
+
|
|
1030
1167
|
return {
|
|
1031
1168
|
"authMethod": "silent signin" as const,
|
|
1032
1169
|
oidcClientTsUser
|
|
@@ -1073,6 +1210,8 @@ export async function createOidc<
|
|
|
1073
1210
|
};
|
|
1074
1211
|
|
|
1075
1212
|
if (resultOfLoginProcess instanceof Error) {
|
|
1213
|
+
log?.("User not logged in and there was an initialization error");
|
|
1214
|
+
|
|
1076
1215
|
const error = resultOfLoginProcess;
|
|
1077
1216
|
|
|
1078
1217
|
const initializationError =
|
|
@@ -1109,7 +1248,10 @@ export async function createOidc<
|
|
|
1109
1248
|
}
|
|
1110
1249
|
|
|
1111
1250
|
if (resultOfLoginProcess === undefined) {
|
|
1251
|
+
log?.("User not logged in");
|
|
1252
|
+
|
|
1112
1253
|
if (isAuthGloballyRequired) {
|
|
1254
|
+
log?.("Authentication is required everywhere on this app, redirecting to the login page");
|
|
1113
1255
|
await loginOrGoToAuthServer({
|
|
1114
1256
|
"action": "login",
|
|
1115
1257
|
"doesCurrentHrefRequiresAuth": true,
|
|
@@ -1132,6 +1274,8 @@ export async function createOidc<
|
|
|
1132
1274
|
return oidc;
|
|
1133
1275
|
}
|
|
1134
1276
|
|
|
1277
|
+
log?.("User logged in");
|
|
1278
|
+
|
|
1135
1279
|
let currentTokens = resultOfLoginProcess.tokens;
|
|
1136
1280
|
|
|
1137
1281
|
const autoLogoutCountdownTickCallbacks = new Set<
|
|
@@ -1277,6 +1421,7 @@ export async function createOidc<
|
|
|
1277
1421
|
);
|
|
1278
1422
|
|
|
1279
1423
|
if (msBeforeExpiration < 0) {
|
|
1424
|
+
log?.("Token has already expired");
|
|
1280
1425
|
return 0;
|
|
1281
1426
|
}
|
|
1282
1427
|
|
|
@@ -1284,12 +1429,30 @@ export async function createOidc<
|
|
|
1284
1429
|
};
|
|
1285
1430
|
|
|
1286
1431
|
(function scheduleRenew() {
|
|
1432
|
+
const msBeforeExpiration = getMsBeforeExpiration();
|
|
1433
|
+
|
|
1287
1434
|
// NOTE: We refresh the token 25 seconds before it expires.
|
|
1288
1435
|
// If the token expiration time is less than 25 seconds we refresh the token when
|
|
1289
1436
|
// only 1/10 of the token time is left.
|
|
1290
|
-
const renewMsBeforeExpires = Math.min(25_000,
|
|
1437
|
+
const renewMsBeforeExpires = Math.min(25_000, msBeforeExpiration * 0.1);
|
|
1438
|
+
|
|
1439
|
+
log?.(
|
|
1440
|
+
[
|
|
1441
|
+
`${Math.round(msBeforeExpiration / 1000)} seconds`,
|
|
1442
|
+
`before expiration of the access token.`,
|
|
1443
|
+
`Scheduling renewal ${Math.round(
|
|
1444
|
+
renewMsBeforeExpires / 1000
|
|
1445
|
+
)} seconds before expiration`
|
|
1446
|
+
].join(" ")
|
|
1447
|
+
);
|
|
1291
1448
|
|
|
1292
1449
|
const timer = setTimeout(async () => {
|
|
1450
|
+
log?.(
|
|
1451
|
+
`Renewing the access token now as it will expires in ${Math.round(
|
|
1452
|
+
renewMsBeforeExpires / 1000
|
|
1453
|
+
)} seconds`
|
|
1454
|
+
);
|
|
1455
|
+
|
|
1293
1456
|
try {
|
|
1294
1457
|
await oidc.renewTokens();
|
|
1295
1458
|
} catch {
|
|
@@ -1304,7 +1467,7 @@ export async function createOidc<
|
|
|
1304
1467
|
"doesCurrentHrefRequiresAuth": false
|
|
1305
1468
|
});
|
|
1306
1469
|
}
|
|
1307
|
-
},
|
|
1470
|
+
}, msBeforeExpiration - renewMsBeforeExpires);
|
|
1308
1471
|
|
|
1309
1472
|
const { unsubscribe: tokenChangeUnsubscribe } = oidc.subscribeToTokensChange(() => {
|
|
1310
1473
|
clearTimeout(timer);
|