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 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 (_d) {
122
- switch (_d.label) {
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
- _d.sent();
193
- _d.label = 2;
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
- _d.sent();
199
- _d.label = 4;
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
- // 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
- })()
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 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;
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
- url = window.location.href;
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
- "name": CONFIG_HASH_RESERVED_QUERY_PARAM_NAME,
440
- url: url
478
+ name: name_3,
479
+ url: url_2
441
480
  });
442
481
  if (!result.wasPresent || result.value !== configHash) {
443
- return [3 /*break*/, 5];
482
+ return [3 /*break*/, 8];
444
483
  }
445
- url = result.newUrl;
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
- name_3 = PARAMS_TO_RETRIEVE_FROM_SUCCESSFUL_LOGIN_1_1.value;
452
- result = (0, urlQueryParams_1.retrieveQueryParamFromUrl)({ name: name_3, url: url });
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 (name_3 === "iss") {
495
+ if (name_4 === "iss") {
455
496
  continue;
456
497
  }
457
- missingMandatoryParams.push(name_3);
498
+ missingMandatoryParams.push(name_4);
458
499
  continue;
459
500
  }
460
501
  loginSuccessUrl = (0, urlQueryParams_1.addQueryParamToUrl)({
461
502
  "url": loginSuccessUrl,
462
- "name": name_3,
503
+ "name": name_4,
463
504
  "value": result.value
464
505
  }).newUrl;
465
- url = result.newUrl;
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: 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
- "name": EXTRA_QUERY_PARAMS_BACK_FROM_AUTH_SERVER_RESERVED_QUERY_PARAM_NAME,
488
- url: url
530
+ name: name_5,
531
+ url: url_2
489
532
  });
490
533
  (0, tsafe_2.assert)(result.wasPresent);
491
- url = result.newUrl;
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
- "name": RESULT_OMIT_RESERVED_QUERY_PARAM_NAME,
498
- url: url
542
+ name: name_6,
543
+ url: url_2
499
544
  });
500
545
  (0, tsafe_2.assert)(result.wasPresent);
501
- url = result.newUrl;
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: url }).values;
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), name_4 = _c[0], value = _c[1];
510
- if (queryParamsNamesToOmit_backFromAuthServer.includes(name_4)) {
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
- result_backFromAuthServer[name_4] = value;
558
+ queryParameterNames_toCleanFromHref_1.add(name_7);
559
+ result_backFromAuthServer[name_7] = value;
514
560
  result = (0, urlQueryParams_1.retrieveQueryParamFromUrl)({
515
- name: name_4,
516
- url: url
561
+ name: name_7,
562
+ url: url_2
517
563
  });
518
564
  (0, tsafe_2.assert)(result.wasPresent);
519
- url = result.newUrl;
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
- window.history.pushState(null, "", url);
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 = 1;
539
- case 1:
540
- _f.trys.push([1, 3, , 4]);
619
+ _f.label = 4;
620
+ case 4:
621
+ _f.trys.push([4, 6, , 7]);
541
622
  return [4 /*yield*/, oidcClientTsUserManager.signinRedirectCallback(loginSuccessUrl)];
542
- case 2:
623
+ case 5:
543
624
  oidcClientTsUser = _f.sent();
544
- return [3 /*break*/, 4];
545
- case 3:
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 4: return [2 /*return*/, {
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 5: return [4 /*yield*/, oidcClientTsUserManager.getUser()];
572
- case 6:
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*/, 11];
656
+ return [3 /*break*/, 14];
576
657
  }
577
- _f.label = 7;
578
- case 7:
579
- _f.trys.push([7, 9, , 10]);
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 8:
663
+ case 11:
582
664
  _f.sent();
583
- return [3 /*break*/, 10];
584
- case 9:
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 10: return [2 /*return*/, {
683
+ case 13: return [2 /*return*/, {
602
684
  "authMethod": "session storage",
603
685
  oidcClientTsUser: oidcClientTsUser
604
686
  }];
605
- case 11:
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 name_5 = PARAMS_TO_RETRIEVE_FROM_SUCCESSFUL_LOGIN_2_1.value;
789
- var result = (0, urlQueryParams_1.retrieveQueryParamFromUrl)({ name: name_5, url: url });
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 (name_5 === "iss") {
875
+ if (name_8 === "iss") {
792
876
  continue;
793
877
  }
794
- missingMandatoryParams.push(name_5);
878
+ missingMandatoryParams.push(name_8);
795
879
  continue;
796
880
  }
797
881
  loginSuccessUrl = (0, urlQueryParams_1.addQueryParamToUrl)({
798
882
  "url": loginSuccessUrl,
799
- "name": name_5,
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 12:
919
+ case 15:
836
920
  loginSuccessUrl = _f.sent();
837
921
  if (loginSuccessUrl === undefined) {
838
- return [3 /*break*/, 17];
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 = 13;
842
- case 13:
843
- _f.trys.push([13, 15, , 16]);
926
+ _f.label = 16;
927
+ case 16:
928
+ _f.trys.push([16, 18, , 19]);
844
929
  return [4 /*yield*/, oidcClientTsUserManager.signinRedirectCallback(loginSuccessUrl)];
845
- case 14:
930
+ case 17:
846
931
  oidcClientTsUser = _f.sent();
847
- return [3 /*break*/, 16];
848
- case 15:
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 16: return [2 /*return*/, {
865
- "authMethod": "silent signin",
866
- oidcClientTsUser: oidcClientTsUser
867
- }];
868
- case 17: return [2 /*return*/, undefined];
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 = _d.sent();
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
- _d.sent();
933
- _d.label = 7;
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, getMsBeforeExpiration_1() * 0.1);
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
- _b.trys.push([0, 2, , 4]);
1072
- return [4 /*yield*/, oidc.renewTokens()];
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.sent();
1075
- return [3 /*break*/, 4];
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 3:
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*/, 4];
1097
- case 4: return [2 /*return*/];
1197
+ return [3 /*break*/, 5];
1198
+ case 5: return [2 /*return*/];
1098
1199
  }
1099
1200
  });
1100
- }); }, getMsBeforeExpiration_1() - renewMsBeforeExpires);
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oidc-spa",
3
- "version": "5.0.1",
3
+ "version": "5.1.1",
4
4
  "description": "Openidconnect client for Single Page Applications",
5
5
  "repository": {
6
6
  "type": "git",
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
- // 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
- })()
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
- "name": CONFIG_HASH_RESERVED_QUERY_PARAM_NAME,
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
- "name": EXTRA_QUERY_PARAMS_BACK_FROM_AUTH_SERVER_RESERVED_QUERY_PARAM_NAME,
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
- "name": RESULT_OMIT_RESERVED_QUERY_PARAM_NAME,
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
- window.history.pushState(null, "", url);
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
- // The server might have restarted and the session might have been lost.
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, getMsBeforeExpiration() * 0.1);
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
- }, getMsBeforeExpiration() - renewMsBeforeExpires);
1470
+ }, msBeforeExpiration - renewMsBeforeExpires);
1308
1471
 
1309
1472
  const { unsubscribe: tokenChangeUnsubscribe } = oidc.subscribeToTokensChange(() => {
1310
1473
  clearTimeout(timer);