oidc-spa 5.0.1 → 5.1.0

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