oidc-spa 4.0.0 → 4.2.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
@@ -12,6 +12,7 @@ export declare namespace Oidc {
12
12
  doesCurrentHrefRequiresAuth: boolean;
13
13
  extraQueryParams?: Record<string, string>;
14
14
  }) => Promise<never>;
15
+ initializationError: OidcInitializationError | undefined;
15
16
  };
16
17
  type LoggedIn<DecodedIdToken extends Record<string, unknown> = Record<string, unknown>> = Common & {
17
18
  isUserLoggedIn: true;
@@ -36,9 +37,22 @@ export declare namespace Oidc {
36
37
  decodedIdToken: DecodedIdToken;
37
38
  }>;
38
39
  }
40
+ export declare class OidcInitializationError extends Error {
41
+ readonly type: "server down" | "bad configuration" | "unknown";
42
+ constructor(params: {
43
+ type: "server down";
44
+ } | {
45
+ type: "bad configuration";
46
+ timeoutDelayMs: number;
47
+ } | {
48
+ type: "unknown";
49
+ cause: Error;
50
+ });
51
+ }
39
52
  export type ParamsOfCreateOidc<DecodedIdToken extends Record<string, unknown> = Record<string, unknown>> = {
40
53
  issuerUri: string;
41
54
  clientId: string;
55
+ clientSecret?: string;
42
56
  transformUrlBeforeRedirect?: (url: string) => string;
43
57
  /**
44
58
  * Extra query params to be added on the login url.
package/oidc.js CHANGED
@@ -1,4 +1,19 @@
1
1
  "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
2
17
  var __assign = (this && this.__assign) || function () {
3
18
  __assign = Object.assign || function(t) {
4
19
  for (var s, i = 1, n = arguments.length; i < n; i++) {
@@ -83,7 +98,7 @@ var __values = (this && this.__values) || function(o) {
83
98
  throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
84
99
  };
85
100
  Object.defineProperty(exports, "__esModule", { value: true });
86
- exports.createOidc = void 0;
101
+ exports.createOidc = exports.OidcInitializationError = void 0;
87
102
  var oidc_client_ts_1 = require("oidc-client-ts");
88
103
  var id_1 = require("tsafe/id");
89
104
  var readExpirationTimeInJwt_1 = require("./tools/readExpirationTimeInJwt");
@@ -92,16 +107,40 @@ var urlQueryParams_1 = require("./tools/urlQueryParams");
92
107
  var fnv1aHashToHex_1 = require("./tools/fnv1aHashToHex");
93
108
  var Deferred_1 = require("./tools/Deferred");
94
109
  var decodeJwt_1 = require("./tools/decodeJwt");
110
+ var getDownlinkAndRtt_1 = require("./tools/getDownlinkAndRtt");
111
+ var OidcInitializationError = /** @class */ (function (_super) {
112
+ __extends(OidcInitializationError, _super);
113
+ function OidcInitializationError(params) {
114
+ var _newTarget = this.constructor;
115
+ var _this = _super.call(this, (function () {
116
+ switch (params.type) {
117
+ case "server down":
118
+ return "The OIDC server is down";
119
+ case "bad configuration":
120
+ return "Bad configuration. Timed out after ".concat(params.timeoutDelayMs, "ms");
121
+ case "unknown":
122
+ return params.cause.message;
123
+ }
124
+ })(),
125
+ // @ts-expect-error
126
+ { "cause": params.type === "unknown" ? params.cause : undefined }) || this;
127
+ _this.type = params.type;
128
+ Object.setPrototypeOf(_this, _newTarget.prototype);
129
+ return _this;
130
+ }
131
+ return OidcInitializationError;
132
+ }(Error));
133
+ exports.OidcInitializationError = OidcInitializationError;
95
134
  var paramsToRetrieveFromSuccessfulLogin = ["code", "state", "session_state", "iss"];
96
135
  /** @see: https://github.com/garronej/oidc-spa#option-1-usage-without-involving-the-ui-framework */
97
136
  function createOidc(params) {
98
137
  return __awaiter(this, void 0, void 0, function () {
99
- var issuerUri, clientId, _a, transformUrlBeforeRedirect, extraQueryParamsOrGetter, publicUrl_params, decodedIdTokenSchema, getExtraQueryParams, publicUrl, configHash, configHashKey, oidcClientTsUserManager, lastPublicRoute, realPushState_1, hasLoginBeenCalled, login, initialTokens, common, error, currentTokens, onTokenChanges, oidc;
138
+ var issuerUri, clientId, clientSecret, _a, transformUrlBeforeRedirect, extraQueryParamsOrGetter, publicUrl_params, decodedIdTokenSchema, getExtraQueryParams, publicUrl, configHash, configHashKey, oidcClientTsUserManager, lastPublicRoute, realPushState_1, hasLoginBeenCalled, login, initialTokens, common, error, initializationError, currentTokens, onTokenChanges, oidc;
100
139
  var _this = this;
101
140
  return __generator(this, function (_b) {
102
141
  switch (_b.label) {
103
142
  case 0:
104
- issuerUri = params.issuerUri, clientId = params.clientId, _a = params.transformUrlBeforeRedirect, transformUrlBeforeRedirect = _a === void 0 ? function (url) { return url; } : _a, extraQueryParamsOrGetter = params.extraQueryParams, publicUrl_params = params.publicUrl, decodedIdTokenSchema = params.decodedIdTokenSchema;
143
+ issuerUri = params.issuerUri, clientId = params.clientId, clientSecret = params.clientSecret, _a = params.transformUrlBeforeRedirect, transformUrlBeforeRedirect = _a === void 0 ? function (url) { return url; } : _a, extraQueryParamsOrGetter = params.extraQueryParams, publicUrl_params = params.publicUrl, decodedIdTokenSchema = params.decodedIdTokenSchema;
105
144
  getExtraQueryParams = (function () {
106
145
  if (typeof extraQueryParamsOrGetter === "function") {
107
146
  return extraQueryParamsOrGetter;
@@ -124,6 +163,7 @@ function createOidc(params) {
124
163
  oidcClientTsUserManager = new oidc_client_ts_1.UserManager({
125
164
  "authority": issuerUri,
126
165
  "client_id": clientId,
166
+ "client_secret": clientSecret,
127
167
  "redirect_uri": "" /* provided when calling login */,
128
168
  "response_type": "code",
129
169
  "scope": "openid profile",
@@ -218,10 +258,10 @@ function createOidc(params) {
218
258
  };
219
259
  return [4 /*yield*/, (function getUser() {
220
260
  return __awaiter(this, void 0, void 0, function () {
221
- var url, result, result, loginSuccessUrl, paramsToRetrieveFromSuccessfulLogin_1, paramsToRetrieveFromSuccessfulLogin_1_1, name_1, result, oidcClientTsUser, _a, oidcClientTsUser, _b, dLoginSuccessUrl_1, timeoutDelayMs, timeout_1, listener_1, loginSuccessUrl, oidcClientTsUser;
222
- var e_1, _c;
223
- return __generator(this, function (_d) {
224
- switch (_d.label) {
261
+ var url, result, result, loginSuccessUrl, paramsToRetrieveFromSuccessfulLogin_1, paramsToRetrieveFromSuccessfulLogin_1_1, name_1, result, oidcClientTsUser, _a, oidcClientTsUser, error_1, dLoginSuccessUrl_1, timeoutDelayMs_1, timeout_1, listener_1, loginSuccessUrl, oidcClientTsUser;
262
+ var e_1, _b;
263
+ return __generator(this, function (_c) {
264
+ switch (_c.label) {
225
265
  case 0:
226
266
  url = window.location.href;
227
267
  {
@@ -259,47 +299,66 @@ function createOidc(params) {
259
299
  catch (e_1_1) { e_1 = { error: e_1_1 }; }
260
300
  finally {
261
301
  try {
262
- if (paramsToRetrieveFromSuccessfulLogin_1_1 && !paramsToRetrieveFromSuccessfulLogin_1_1.done && (_c = paramsToRetrieveFromSuccessfulLogin_1.return)) _c.call(paramsToRetrieveFromSuccessfulLogin_1);
302
+ if (paramsToRetrieveFromSuccessfulLogin_1_1 && !paramsToRetrieveFromSuccessfulLogin_1_1.done && (_b = paramsToRetrieveFromSuccessfulLogin_1.return)) _b.call(paramsToRetrieveFromSuccessfulLogin_1);
263
303
  }
264
304
  finally { if (e_1) throw e_1.error; }
265
305
  }
266
306
  window.history.pushState(null, "", url);
267
307
  oidcClientTsUser = undefined;
268
- _d.label = 1;
308
+ _c.label = 1;
269
309
  case 1:
270
- _d.trys.push([1, 3, , 4]);
310
+ _c.trys.push([1, 3, , 4]);
271
311
  return [4 /*yield*/, oidcClientTsUserManager.signinRedirectCallback(loginSuccessUrl)];
272
312
  case 2:
273
- oidcClientTsUser = _d.sent();
313
+ oidcClientTsUser = _c.sent();
274
314
  return [3 /*break*/, 4];
275
315
  case 3:
276
- _a = _d.sent();
316
+ _a = _c.sent();
277
317
  //NOTE: The user has likely pressed the back button just after logging in.
278
318
  return [2 /*return*/, undefined];
279
319
  case 4: return [2 /*return*/, oidcClientTsUser];
280
320
  case 5: return [4 /*yield*/, oidcClientTsUserManager.getUser()];
281
321
  case 6:
282
- oidcClientTsUser = _d.sent();
322
+ oidcClientTsUser = _c.sent();
283
323
  if (oidcClientTsUser === null) {
284
324
  return [3 /*break*/, 11];
285
325
  }
286
- _d.label = 7;
326
+ _c.label = 7;
287
327
  case 7:
288
- _d.trys.push([7, 9, , 10]);
328
+ _c.trys.push([7, 9, , 10]);
289
329
  return [4 /*yield*/, oidcClientTsUserManager.signinSilent()];
290
330
  case 8:
291
- _d.sent();
331
+ _c.sent();
292
332
  return [3 /*break*/, 10];
293
333
  case 9:
294
- _b = _d.sent();
334
+ error_1 = _c.sent();
335
+ (0, assert_1.assert)(error_1 instanceof Error);
336
+ if (error_1.message === "Failed to fetch") {
337
+ throw new OidcInitializationError({ "type": "server down" });
338
+ }
295
339
  return [2 /*return*/, undefined];
296
340
  case 10: return [2 /*return*/, oidcClientTsUser];
297
341
  case 11:
298
342
  dLoginSuccessUrl_1 = new Deferred_1.Deferred();
299
- timeoutDelayMs = 2500;
343
+ timeoutDelayMs_1 = (function () {
344
+ var downlinkAndRtt = (0, getDownlinkAndRtt_1.getDownlinkAndRtt)();
345
+ if (downlinkAndRtt === undefined) {
346
+ return 5000;
347
+ }
348
+ var downlink = downlinkAndRtt.downlink, rtt = downlinkAndRtt.rtt;
349
+ // Base delay is the minimum delay we're willing to tolerate
350
+ var baseDelay = 3000;
351
+ // Calculate dynamic delay based on RTT and downlink
352
+ // Add 1 to downlink to avoid division by zero
353
+ var dynamicDelay = rtt * 2.5 + 3000 / (downlink + 1);
354
+ return Math.max(baseDelay, dynamicDelay);
355
+ })();
300
356
  timeout_1 = setTimeout(function () {
301
- return dLoginSuccessUrl_1.reject(new Error("SSO silent login timeout with clientId: ".concat(clientId)));
302
- }, timeoutDelayMs);
357
+ return dLoginSuccessUrl_1.reject(new OidcInitializationError({
358
+ "type": "bad configuration",
359
+ timeoutDelayMs: timeoutDelayMs_1
360
+ }));
361
+ }, timeoutDelayMs_1);
303
362
  listener_1 = function (event) {
304
363
  var e_2, _a;
305
364
  if (typeof event.data !== "string") {
@@ -357,19 +416,22 @@ function createOidc(params) {
357
416
  };
358
417
  window.addEventListener("message", listener_1, false);
359
418
  oidcClientTsUserManager
360
- .signinSilent({ "silentRequestTimeoutInSeconds": timeoutDelayMs / 1000 })
361
- .catch(function () {
362
- /* error expected */
419
+ .signinSilent({ "silentRequestTimeoutInSeconds": timeoutDelayMs_1 / 1000 })
420
+ .catch(function (error) {
421
+ if (error.message === "Failed to fetch") {
422
+ clearTimeout(timeout_1);
423
+ dLoginSuccessUrl_1.reject(new OidcInitializationError({ "type": "server down" }));
424
+ }
363
425
  });
364
426
  return [4 /*yield*/, dLoginSuccessUrl_1.pr];
365
427
  case 12:
366
- loginSuccessUrl = _d.sent();
428
+ loginSuccessUrl = _c.sent();
367
429
  if (loginSuccessUrl === undefined) {
368
430
  return [3 /*break*/, 14];
369
431
  }
370
432
  return [4 /*yield*/, oidcClientTsUserManager.signinRedirectCallback(loginSuccessUrl)];
371
433
  case 13:
372
- oidcClientTsUser = _d.sent();
434
+ oidcClientTsUser = _c.sent();
373
435
  return [2 /*return*/, oidcClientTsUser];
374
436
  case 14: return [2 /*return*/, undefined];
375
437
  }
@@ -405,16 +467,22 @@ function createOidc(params) {
405
467
  };
406
468
  if (initialTokens instanceof Error) {
407
469
  error = initialTokens;
408
- console.error("The OIDC server is down or misconfigured: ".concat(error.message));
470
+ initializationError = error instanceof OidcInitializationError
471
+ ? error
472
+ : new OidcInitializationError({
473
+ "type": "unknown",
474
+ "cause": error
475
+ });
476
+ console.error("OIDC initilization error: ".concat(initializationError.message));
409
477
  return [2 /*return*/, (0, id_1.id)(__assign(__assign({}, common), { "isUserLoggedIn": false, "login": function () { return __awaiter(_this, void 0, void 0, function () {
410
478
  return __generator(this, function (_a) {
411
479
  alert("Authentication is currently unavailable. Please try again later.");
412
480
  return [2 /*return*/, new Promise(function () { })];
413
481
  });
414
- }); } }))];
482
+ }); }, initializationError: initializationError }))];
415
483
  }
416
484
  if (initialTokens === undefined) {
417
- return [2 /*return*/, (0, id_1.id)(__assign(__assign({}, common), { "isUserLoggedIn": false, login: login }))];
485
+ return [2 /*return*/, (0, id_1.id)(__assign(__assign({}, common), { "isUserLoggedIn": false, login: login, "initializationError": undefined }))];
418
486
  }
419
487
  currentTokens = initialTokens;
420
488
  onTokenChanges = new Set();
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": "4.0.0",
3
+ "version": "4.2.0",
4
4
  "description": "Openidconnect client for Single Page Applications",
5
5
  "repository": {
6
6
  "type": "git",
@@ -16,6 +16,7 @@
16
16
  "./tools/decodeJwt": "./tools/decodeJwt.js",
17
17
  "./tools/Deferred": "./tools/Deferred.js",
18
18
  "./tools/fnv1aHashToHex": "./tools/fnv1aHashToHex.js",
19
+ "./tools/getDownlinkAndRtt": "./tools/getDownlinkAndRtt.js",
19
20
  "./tools/powerhooks/useGuaranteedMemo": "./tools/powerhooks/useGuaranteedMemo.js",
20
21
  "./tools/readExpirationTimeInJwt": "./tools/readExpirationTimeInJwt.js",
21
22
  "./tools/urlQueryParams": "./tools/urlQueryParams.js"
@@ -39,6 +40,7 @@
39
40
  "./src/tools/Deferred.ts",
40
41
  "./src/tools/decodeJwt.ts",
41
42
  "./src/tools/fnv1aHashToHex.ts",
43
+ "./src/tools/getDownlinkAndRtt.ts",
42
44
  "./src/tools/powerhooks/useGuaranteedMemo.ts",
43
45
  "./src/tools/readExpirationTimeInJwt.ts",
44
46
  "./src/tools/urlQueryParams.ts",
@@ -60,6 +62,9 @@
60
62
  "./tools/fnv1aHashToHex.d.ts",
61
63
  "./tools/fnv1aHashToHex.js",
62
64
  "./tools/fnv1aHashToHex.js.map",
65
+ "./tools/getDownlinkAndRtt.d.ts",
66
+ "./tools/getDownlinkAndRtt.js",
67
+ "./tools/getDownlinkAndRtt.js.map",
63
68
  "./tools/powerhooks/useGuaranteedMemo.d.ts",
64
69
  "./tools/powerhooks/useGuaranteedMemo.js",
65
70
  "./tools/powerhooks/useGuaranteedMemo.js.map",
@@ -74,7 +79,7 @@
74
79
  "homepage": "https://docs.oidc-spa.dev/",
75
80
  "dependencies": {
76
81
  "jwt-decode": "^3.1.2",
77
- "oidc-client-ts": "^2.3.0",
82
+ "oidc-client-ts": "3.0.0",
78
83
  "tsafe": "^1.6.5"
79
84
  },
80
85
  "devDependencies": {
package/react.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { type ReactNode } from "react";
2
- import { type ParamsOfCreateOidc, type Oidc } from "./oidc";
2
+ import { type ParamsOfCreateOidc, type Oidc, type OidcInitializationError } from "./oidc";
3
3
  export type OidcReact<DecodedIdToken extends Record<string, unknown>> = OidcReact.NotLoggedIn | OidcReact.LoggedIn<DecodedIdToken>;
4
4
  export declare namespace OidcReact {
5
5
  type Common = Oidc.Common;
@@ -8,6 +8,7 @@ export declare namespace OidcReact {
8
8
  login: Oidc.NotLoggedIn["login"];
9
9
  oidcTokens?: never;
10
10
  logout?: never;
11
+ initializationError: OidcInitializationError | undefined;
11
12
  };
12
13
  type LoggedIn<DecodedIdToken extends Record<string, unknown>> = Common & {
13
14
  isUserLoggedIn: true;
@@ -15,6 +16,7 @@ export declare namespace OidcReact {
15
16
  logout: Oidc.LoggedIn["logout"];
16
17
  renewTokens: Oidc.LoggedIn["renewTokens"];
17
18
  login?: never;
19
+ initializationError?: never;
18
20
  };
19
21
  }
20
22
  /** @see: https://github.com/garronej/oidc-spa#option-2-usage-directly-within-react */
package/react.js CHANGED
@@ -112,7 +112,7 @@ function createReactOidc(params) {
112
112
  };
113
113
  return oidc.isUserLoggedIn
114
114
  ? (0, id_1.id)(((0, assert_1.assert)(oidcTokens !== undefined), __assign(__assign({}, common), { "isUserLoggedIn": true, oidcTokens: oidcTokens, "logout": oidc.logout, "renewTokens": oidc.renewTokens })))
115
- : (0, id_1.id)(__assign(__assign({}, common), { "isUserLoggedIn": false, "login": oidc.login }));
115
+ : (0, id_1.id)(__assign(__assign({}, common), { "isUserLoggedIn": false, "login": oidc.login, "initializationError": oidc.initializationError }));
116
116
  }
117
117
  return { OidcProvider: OidcProvider, useOidc: useOidc, prOidc: prOidc };
118
118
  }
package/react.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"react.js","sourceRoot":"","sources":["src/react.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["src/react.tsx"],"names":[],"mappings":"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"}
package/src/oidc.ts CHANGED
@@ -6,6 +6,7 @@ import { addQueryParamToUrl, retrieveQueryParamFromUrl } from "./tools/urlQueryP
6
6
  import { fnv1aHashToHex } from "./tools/fnv1aHashToHex";
7
7
  import { Deferred } from "./tools/Deferred";
8
8
  import { decodeJwt } from "./tools/decodeJwt";
9
+ import { getDownlinkAndRtt } from "./tools/getDownlinkAndRtt";
9
10
 
10
11
  export declare type Oidc<DecodedIdToken extends Record<string, unknown> = Record<string, unknown>> =
11
12
  | Oidc.LoggedIn<DecodedIdToken>
@@ -25,6 +26,7 @@ export declare namespace Oidc {
25
26
  doesCurrentHrefRequiresAuth: boolean;
26
27
  extraQueryParams?: Record<string, string>;
27
28
  }) => Promise<never>;
29
+ initializationError: OidcInitializationError | undefined;
28
30
  };
29
31
 
30
32
  export type LoggedIn<DecodedIdToken extends Record<string, unknown> = Record<string, unknown>> =
@@ -51,6 +53,42 @@ export declare namespace Oidc {
51
53
  }>;
52
54
  }
53
55
 
56
+ export class OidcInitializationError extends Error {
57
+ public readonly type: "server down" | "bad configuration" | "unknown";
58
+
59
+ constructor(
60
+ params:
61
+ | {
62
+ type: "server down";
63
+ }
64
+ | {
65
+ type: "bad configuration";
66
+ timeoutDelayMs: number;
67
+ }
68
+ | {
69
+ type: "unknown";
70
+ cause: Error;
71
+ }
72
+ ) {
73
+ super(
74
+ (() => {
75
+ switch (params.type) {
76
+ case "server down":
77
+ return "The OIDC server is down";
78
+ case "bad configuration":
79
+ return `Bad configuration. Timed out after ${params.timeoutDelayMs}ms`;
80
+ case "unknown":
81
+ return params.cause.message;
82
+ }
83
+ })(),
84
+ // @ts-expect-error
85
+ { "cause": params.type === "unknown" ? params.cause : undefined }
86
+ );
87
+ this.type = params.type;
88
+ Object.setPrototypeOf(this, new.target.prototype);
89
+ }
90
+ }
91
+
54
92
  const paramsToRetrieveFromSuccessfulLogin = ["code", "state", "session_state", "iss"] as const;
55
93
 
56
94
  export type ParamsOfCreateOidc<
@@ -58,6 +96,7 @@ export type ParamsOfCreateOidc<
58
96
  > = {
59
97
  issuerUri: string;
60
98
  clientId: string;
99
+ clientSecret?: string;
61
100
  transformUrlBeforeRedirect?: (url: string) => string;
62
101
  /**
63
102
  * Extra query params to be added on the login url.
@@ -90,6 +129,7 @@ export async function createOidc<
90
129
  const {
91
130
  issuerUri,
92
131
  clientId,
132
+ clientSecret,
93
133
  transformUrlBeforeRedirect = url => url,
94
134
  extraQueryParams: extraQueryParamsOrGetter,
95
135
  publicUrl: publicUrl_params,
@@ -126,6 +166,7 @@ export async function createOidc<
126
166
  const oidcClientTsUserManager = new OidcClientTsUserManager({
127
167
  "authority": issuerUri,
128
168
  "client_id": clientId,
169
+ "client_secret": clientSecret,
129
170
  "redirect_uri": "" /* provided when calling login */,
130
171
  "response_type": "code",
131
172
  "scope": "openid profile",
@@ -290,7 +331,13 @@ export async function createOidc<
290
331
  // The server might have restarted and the session might have been lost.
291
332
  try {
292
333
  await oidcClientTsUserManager.signinSilent();
293
- } catch {
334
+ } catch (error) {
335
+ assert(error instanceof Error);
336
+
337
+ if (error.message === "Failed to fetch") {
338
+ throw new OidcInitializationError({ "type": "server down" });
339
+ }
340
+
294
341
  return undefined;
295
342
  }
296
343
 
@@ -300,12 +347,32 @@ export async function createOidc<
300
347
  restore_from_http_only_cookie: {
301
348
  const dLoginSuccessUrl = new Deferred<string | undefined>();
302
349
 
303
- const timeoutDelayMs = 2500;
350
+ const timeoutDelayMs = (() => {
351
+ const downlinkAndRtt = getDownlinkAndRtt();
352
+
353
+ if (downlinkAndRtt === undefined) {
354
+ return 5000;
355
+ }
356
+
357
+ const { downlink, rtt } = downlinkAndRtt;
358
+
359
+ // Base delay is the minimum delay we're willing to tolerate
360
+ const baseDelay = 3000;
361
+
362
+ // Calculate dynamic delay based on RTT and downlink
363
+ // Add 1 to downlink to avoid division by zero
364
+ const dynamicDelay = rtt * 2.5 + 3000 / (downlink + 1);
365
+
366
+ return Math.max(baseDelay, dynamicDelay);
367
+ })();
304
368
 
305
369
  const timeout = setTimeout(
306
370
  () =>
307
371
  dLoginSuccessUrl.reject(
308
- new Error(`SSO silent login timeout with clientId: ${clientId}`)
372
+ new OidcInitializationError({
373
+ "type": "bad configuration",
374
+ timeoutDelayMs
375
+ })
309
376
  ),
310
377
  timeoutDelayMs
311
378
  );
@@ -371,8 +438,12 @@ export async function createOidc<
371
438
 
372
439
  oidcClientTsUserManager
373
440
  .signinSilent({ "silentRequestTimeoutInSeconds": timeoutDelayMs / 1000 })
374
- .catch(() => {
375
- /* error expected */
441
+ .catch((error: Error) => {
442
+ if (error.message === "Failed to fetch") {
443
+ clearTimeout(timeout);
444
+
445
+ dLoginSuccessUrl.reject(new OidcInitializationError({ "type": "server down" }));
446
+ }
376
447
  });
377
448
 
378
449
  const loginSuccessUrl = await dLoginSuccessUrl.pr;
@@ -428,7 +499,15 @@ export async function createOidc<
428
499
  if (initialTokens instanceof Error) {
429
500
  const error = initialTokens;
430
501
 
431
- console.error(`The OIDC server is down or misconfigured: ${error.message}`);
502
+ const initializationError =
503
+ error instanceof OidcInitializationError
504
+ ? error
505
+ : new OidcInitializationError({
506
+ "type": "unknown",
507
+ "cause": error
508
+ });
509
+
510
+ console.error(`OIDC initilization error: ${initializationError.message}`);
432
511
 
433
512
  return id<Oidc.NotLoggedIn>({
434
513
  ...common,
@@ -436,7 +515,8 @@ export async function createOidc<
436
515
  "login": async () => {
437
516
  alert("Authentication is currently unavailable. Please try again later.");
438
517
  return new Promise<never>(() => {});
439
- }
518
+ },
519
+ initializationError
440
520
  });
441
521
  }
442
522
 
@@ -444,7 +524,8 @@ export async function createOidc<
444
524
  return id<Oidc.NotLoggedIn>({
445
525
  ...common,
446
526
  "isUserLoggedIn": false,
447
- login
527
+ login,
528
+ "initializationError": undefined
448
529
  });
449
530
  }
450
531
 
package/src/react.tsx CHANGED
@@ -1,5 +1,5 @@
1
1
  import { useEffect, useState, createContext, useContext, useReducer, type ReactNode } from "react";
2
- import { createOidc, type ParamsOfCreateOidc, type Oidc } from "./oidc";
2
+ import { createOidc, type ParamsOfCreateOidc, type Oidc, type OidcInitializationError } from "./oidc";
3
3
  import { assert } from "tsafe/assert";
4
4
  import { id } from "tsafe/id";
5
5
  import { useGuaranteedMemo } from "./tools/powerhooks/useGuaranteedMemo";
@@ -16,6 +16,7 @@ export namespace OidcReact {
16
16
  login: Oidc.NotLoggedIn["login"];
17
17
  oidcTokens?: never;
18
18
  logout?: never;
19
+ initializationError: OidcInitializationError | undefined;
19
20
  };
20
21
 
21
22
  export type LoggedIn<DecodedIdToken extends Record<string, unknown>> = Common & {
@@ -24,6 +25,7 @@ export namespace OidcReact {
24
25
  logout: Oidc.LoggedIn["logout"];
25
26
  renewTokens: Oidc.LoggedIn["renewTokens"];
26
27
  login?: never;
28
+ initializationError?: never;
27
29
  };
28
30
  }
29
31
 
@@ -164,7 +166,8 @@ export function createReactOidc<
164
166
  : id<OidcReact.NotLoggedIn>({
165
167
  ...common,
166
168
  "isUserLoggedIn": false,
167
- "login": oidc.login
169
+ "login": oidc.login,
170
+ "initializationError": oidc.initializationError
168
171
  });
169
172
  }
170
173
 
@@ -0,0 +1,22 @@
1
+ import { assert } from "tsafe/assert";
2
+
3
+ export function getDownlinkAndRtt(): { downlink: number; rtt: number } | undefined {
4
+ if (!(window.navigator instanceof Object)) {
5
+ return undefined;
6
+ }
7
+
8
+ const navigator: any = window.navigator;
9
+
10
+ for (const key of ["connection", "mozConnection", "webkitConnection"] as const) {
11
+ try {
12
+ const { downlink, rtt } = navigator[key];
13
+
14
+ assert(typeof downlink === "number");
15
+ assert(typeof rtt === "number");
16
+
17
+ return { downlink, rtt };
18
+ } catch {}
19
+ }
20
+
21
+ return undefined;
22
+ }
@@ -0,0 +1,4 @@
1
+ export declare function getDownlinkAndRtt(): {
2
+ downlink: number;
3
+ rtt: number;
4
+ } | undefined;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __values = (this && this.__values) || function(o) {
3
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
4
+ if (m) return m.call(o);
5
+ if (o && typeof o.length === "number") return {
6
+ next: function () {
7
+ if (o && i >= o.length) o = void 0;
8
+ return { value: o && o[i++], done: !o };
9
+ }
10
+ };
11
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.getDownlinkAndRtt = void 0;
15
+ var assert_1 = require("tsafe/assert");
16
+ function getDownlinkAndRtt() {
17
+ var e_1, _a;
18
+ if (!(window.navigator instanceof Object)) {
19
+ return undefined;
20
+ }
21
+ var navigator = window.navigator;
22
+ try {
23
+ for (var _b = __values(["connection", "mozConnection", "webkitConnection"]), _c = _b.next(); !_c.done; _c = _b.next()) {
24
+ var key = _c.value;
25
+ try {
26
+ var _d = navigator[key], downlink = _d.downlink, rtt = _d.rtt;
27
+ (0, assert_1.assert)(typeof downlink === "number");
28
+ (0, assert_1.assert)(typeof rtt === "number");
29
+ return { downlink: downlink, rtt: rtt };
30
+ }
31
+ catch (_e) { }
32
+ }
33
+ }
34
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
35
+ finally {
36
+ try {
37
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
38
+ }
39
+ finally { if (e_1) throw e_1.error; }
40
+ }
41
+ return undefined;
42
+ }
43
+ exports.getDownlinkAndRtt = getDownlinkAndRtt;
44
+ //# sourceMappingURL=getDownlinkAndRtt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDownlinkAndRtt.js","sourceRoot":"","sources":["../src/tools/getDownlinkAndRtt.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,uCAAsC;AAEtC,SAAgB,iBAAiB;;IAC7B,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,YAAY,MAAM,CAAC,EAAE,CAAC;QACxC,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,IAAM,SAAS,GAAQ,MAAM,CAAC,SAAS,CAAC;;QAExC,KAAkB,IAAA,KAAA,SAAA,CAAC,YAAY,EAAE,eAAe,EAAE,kBAAkB,CAAU,CAAA,gBAAA,4BAAE,CAAC;YAA5E,IAAM,GAAG,WAAA;YACV,IAAI,CAAC;gBACK,IAAA,KAAoB,SAAS,CAAC,GAAG,CAAC,EAAhC,QAAQ,cAAA,EAAE,GAAG,SAAmB,CAAC;gBAEzC,IAAA,eAAM,EAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC;gBACrC,IAAA,eAAM,EAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC;gBAEhC,OAAO,EAAE,QAAQ,UAAA,EAAE,GAAG,KAAA,EAAE,CAAC;YAC7B,CAAC;YAAC,WAAM,CAAC,CAAA,CAAC;QACd,CAAC;;;;;;;;;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAnBD,8CAmBC"}