oidc-spa 4.8.1 → 4.9.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/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  export { createOidc } from "./oidc";
2
- export type { Oidc } from "./oidc";
2
+ export type { Oidc, OidcInitializationError } from "./oidc";
3
3
  export { decodeJwt } from "./tools/decodeJwt";
package/mock/oidc.d.ts CHANGED
@@ -1,8 +1,10 @@
1
1
  import type { Oidc } from "../oidc";
2
- export type ParamsOfCreateMockOidc<DecodedIdToken extends Record<string, unknown> = Record<string, unknown>> = {
2
+ export type ParamsOfCreateMockOidc<DecodedIdToken extends Record<string, unknown> = Record<string, unknown>, IsAuthRequiredOnEveryPages extends boolean = false> = {
3
3
  isUserInitiallyLoggedIn: boolean;
4
4
  mockedParams?: Partial<Oidc["params"]>;
5
5
  mockedTokens?: Partial<Oidc.Tokens<DecodedIdToken>>;
6
6
  publicUrl?: string;
7
+ isAuthRequiredOnEveryPages?: IsAuthRequiredOnEveryPages;
8
+ postLoginRedirectUrl?: string;
7
9
  };
8
- export declare function createMockOidc<DecodedIdToken extends Record<string, unknown> = Record<string, unknown>>(params: ParamsOfCreateMockOidc<DecodedIdToken>): Oidc<DecodedIdToken>;
10
+ export declare function createMockOidc<DecodedIdToken extends Record<string, unknown> = Record<string, unknown>, IsAuthRequiredOnEveryPages extends boolean = false>(params: ParamsOfCreateMockOidc<DecodedIdToken, IsAuthRequiredOnEveryPages>): IsAuthRequiredOnEveryPages extends true ? Oidc.LoggedIn<DecodedIdToken> : Oidc<DecodedIdToken>;
package/mock/oidc.js CHANGED
@@ -56,7 +56,7 @@ var urlParamName = "isUserLoggedIn";
56
56
  function createMockOidc(params) {
57
57
  var _this = this;
58
58
  var _a, _b;
59
- var isUserInitiallyLoggedIn = params.isUserInitiallyLoggedIn, _c = params.mockedParams, mockedParams = _c === void 0 ? {} : _c, _d = params.mockedTokens, mockedTokens = _d === void 0 ? {} : _d, publicUrl_params = params.publicUrl;
59
+ var isUserInitiallyLoggedIn = params.isUserInitiallyLoggedIn, _c = params.mockedParams, mockedParams = _c === void 0 ? {} : _c, _d = params.mockedTokens, mockedTokens = _d === void 0 ? {} : _d, publicUrl_params = params.publicUrl, _e = params.isAuthRequiredOnEveryPages, isAuthRequiredOnEveryPages = _e === void 0 ? false : _e, postLoginRedirectUrl = params.postLoginRedirectUrl;
60
60
  var isUserLoggedIn = (function () {
61
61
  var result = (0, urlQueryParams_1.retrieveQueryParamFromUrl)({
62
62
  "url": window.location.href,
@@ -83,18 +83,37 @@ function createMockOidc(params) {
83
83
  }
84
84
  };
85
85
  if (!isUserLoggedIn) {
86
- return (0, id_1.id)(__assign(__assign({}, common), { "isUserLoggedIn": false, "login": function () { return __awaiter(_this, void 0, void 0, function () {
87
- var newUrl;
88
- return __generator(this, function (_a) {
89
- newUrl = (0, urlQueryParams_1.addQueryParamToUrl)({
90
- "url": window.location.href,
91
- "name": urlParamName,
92
- "value": "true"
93
- }).newUrl;
94
- window.location.href = newUrl;
95
- return [2 /*return*/, new Promise(function () { })];
86
+ var oidc = (0, id_1.id)(__assign(__assign({}, common), { "isUserLoggedIn": false, "login": function (_a) {
87
+ var redirectUrl = _a.redirectUrl;
88
+ return __awaiter(_this, void 0, void 0, function () {
89
+ var newUrl;
90
+ return __generator(this, function (_b) {
91
+ newUrl = (0, urlQueryParams_1.addQueryParamToUrl)({
92
+ "url": (function () {
93
+ if (redirectUrl === undefined) {
94
+ return window.location.href;
95
+ }
96
+ return redirectUrl.startsWith("/")
97
+ ? "".concat(window.location.origin).concat(redirectUrl)
98
+ : redirectUrl;
99
+ })(),
100
+ "name": urlParamName,
101
+ "value": "true"
102
+ }).newUrl;
103
+ window.location.href = newUrl;
104
+ return [2 /*return*/, new Promise(function () { })];
105
+ });
96
106
  });
97
- }); }, "initializationError": undefined }));
107
+ }, "initializationError": undefined }));
108
+ if (!isAuthRequiredOnEveryPages) {
109
+ oidc.login({
110
+ "redirectUrl": postLoginRedirectUrl,
111
+ "doesCurrentHrefRequiresAuth": true
112
+ });
113
+ (0, assert_1.assert)(false);
114
+ }
115
+ // @ts-expect-error: We know what we are doing
116
+ return oidc;
98
117
  }
99
118
  return (0, id_1.id)(__assign(__assign({}, common), { "isUserLoggedIn": true, "renewTokens": function () { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
100
119
  return [2 /*return*/];
package/mock/oidc.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"oidc.js","sourceRoot":"","sources":["../src/mock/oidc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oidc.js","sourceRoot":"","sources":["../src/mock/oidc.ts"],"names":[],"mappings":"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"}
package/mock/react.d.ts CHANGED
@@ -1,17 +1,21 @@
1
1
  /// <reference types="react" />
2
2
  import { type ParamsOfCreateMockOidc } from "./oidc";
3
- export declare function createMockReactOidc<DecodedIdToken extends Record<string, unknown> = Record<string, unknown>>(params: ParamsOfCreateMockOidc<DecodedIdToken>): {
3
+ /** @see: https://docs.oidc-spa.dev/documentation/mock */
4
+ export declare function createMockReactOidc<DecodedIdToken extends Record<string, unknown> = Record<string, unknown>, IsAuthRequiredOnEveryPages extends boolean = false>(params: ParamsOfCreateMockOidc<DecodedIdToken, IsAuthRequiredOnEveryPages>): {
4
5
  OidcProvider: (props: {
5
6
  fallback?: import("react").ReactNode;
7
+ ErrorFallback?: ((props: {
8
+ initializationError: import("..").OidcInitializationError;
9
+ }) => import("react").ReactNode) | undefined;
6
10
  children: import("react").ReactNode;
7
- }) => import("react/jsx-runtime").JSX.Element;
11
+ }) => JSX.Element;
8
12
  useOidc: {
9
13
  (params?: {
10
14
  assertUserLoggedIn: false;
11
15
  } | undefined): import("../react/react").OidcReact<DecodedIdToken>;
12
16
  (params: {
13
17
  assertUserLoggedIn: true;
14
- }): import("../react/react").OidcReact.LoggedIn<DecodedIdToken>;
18
+ }): import("../react/react").OidcReact<DecodedIdToken>;
15
19
  };
16
20
  prOidc: Promise<import("..").Oidc<DecodedIdToken>>;
17
21
  };
package/mock/react.js CHANGED
@@ -3,8 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createMockReactOidc = void 0;
4
4
  var react_1 = require("../react/react");
5
5
  var oidc_1 = require("./oidc");
6
+ /** @see: https://docs.oidc-spa.dev/documentation/mock */
6
7
  function createMockReactOidc(params) {
7
- return (0, react_1.createReactOidc_dependencyInjection)(params, oidc_1.createMockOidc);
8
+ return (0, react_1.createOidcReactApi_dependencyInjection)(params, oidc_1.createMockOidc);
8
9
  }
9
10
  exports.createMockReactOidc = createMockReactOidc;
10
11
  //# sourceMappingURL=react.js.map
package/mock/react.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"react.js","sourceRoot":"","sources":["../src/mock/react.tsx"],"names":[],"mappings":";;;AAAA,wCAAqE;AACrE,+BAAqE;AAErE,SAAgB,mBAAmB,CAEjC,MAA8C;IAC5C,OAAO,IAAA,2CAAmC,EAAC,MAAM,EAAE,qBAAc,CAAC,CAAC;AACvE,CAAC;AAJD,kDAIC"}
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["../src/mock/react.tsx"],"names":[],"mappings":";;;AAAA,wCAAwE;AACxE,+BAAqE;AAErE,yDAAyD;AACzD,SAAgB,mBAAmB,CAGjC,MAA0E;IACxE,OAAO,IAAA,8CAAsC,EAAC,MAAM,EAAE,qBAAc,CAAC,CAAC;AAC1E,CAAC;AALD,kDAKC"}
package/oidc.d.ts CHANGED
@@ -67,22 +67,32 @@ export declare class OidcInitializationError extends Error {
67
67
  type: "misconfigured OIDC client";
68
68
  clientId: string;
69
69
  timeoutDelayMs: number;
70
+ publicUrl: string | undefined;
70
71
  } | {
71
72
  type: "not in Web Origins";
72
73
  clientId: string;
73
74
  } | {
74
75
  type: "silent-sso.html not reachable";
75
76
  silentSsoHtmlUrl: string;
77
+ } | {
78
+ type: "frame-ancestors none";
79
+ silentSso: {
80
+ hasDedicatedHtmlFile: boolean;
81
+ redirectUri: string;
82
+ };
76
83
  };
77
84
  } | {
78
85
  type: "unknown";
79
86
  cause: Error;
80
87
  });
81
88
  }
82
- export type ParamsOfCreateOidc<DecodedIdToken extends Record<string, unknown> = Record<string, unknown>> = {
89
+ export type ParamsOfCreateOidc<DecodedIdToken extends Record<string, unknown> = Record<string, unknown>, IsAuthRequiredOnEveryPages extends boolean = false> = {
83
90
  issuerUri: string;
84
91
  clientId: string;
85
92
  clientSecret?: string;
93
+ /**
94
+ * Transform the url before redirecting to the login pages.
95
+ */
86
96
  transformUrlBeforeRedirect?: (url: string) => string;
87
97
  /**
88
98
  * Extra query params to be added on the login url.
@@ -90,8 +100,19 @@ export type ParamsOfCreateOidc<DecodedIdToken extends Record<string, unknown> =
90
100
  * when login() is called.
91
101
  *
92
102
  * Example: extraQueryParams: ()=> ({ ui_locales: "fr" })
103
+ *
104
+ * This parameter can also be passed to login() directly.
93
105
  */
94
106
  extraQueryParams?: Record<string, string> | (() => Record<string, string>);
107
+ /**
108
+ * Where to redirect after successful login.
109
+ * Default: window.location.href (here)
110
+ *
111
+ * It does not need to include the origin, eg: "/dashboard"
112
+ *
113
+ * This parameter can also be passed to login() directly as `redirectUrl`.
114
+ */
115
+ postLoginRedirectUrl?: string;
95
116
  /**
96
117
  * This parameter is used to let oidc-spa knows where to find the silent-sso.html file
97
118
  * and also to know what is the root path of your application so it can redirect to it after logout.
@@ -121,6 +142,7 @@ export type ParamsOfCreateOidc<DecodedIdToken extends Record<string, unknown> =
121
142
  * */
122
143
  __unsafe_ssoSessionIdleSeconds?: number;
123
144
  autoLogoutParams?: Parameters<Oidc.LoggedIn<any>["logout"]>[0];
145
+ isAuthRequiredOnEveryPages?: IsAuthRequiredOnEveryPages;
124
146
  };
125
147
  /** @see: https://github.com/garronej/oidc-spa#option-1-usage-without-involving-the-ui-framework */
126
- export declare function createOidc<DecodedIdToken extends Record<string, unknown> = Record<string, unknown>>(params: ParamsOfCreateOidc<DecodedIdToken>): Promise<Oidc<DecodedIdToken>>;
148
+ export declare function createOidc<DecodedIdToken extends Record<string, unknown> = Record<string, unknown>, IsAuthRequiredOnEveryPages extends boolean = false>(params: ParamsOfCreateOidc<DecodedIdToken, IsAuthRequiredOnEveryPages>): Promise<IsAuthRequiredOnEveryPages extends true ? Oidc.LoggedIn<DecodedIdToken> : Oidc<DecodedIdToken>>;
package/oidc.js CHANGED
@@ -116,6 +116,7 @@ var OidcInitializationError = /** @class */ (function (_super) {
116
116
  function OidcInitializationError(params) {
117
117
  var _newTarget = this.constructor;
118
118
  var _this = _super.call(this, (function () {
119
+ var _a;
119
120
  switch (params.type) {
120
121
  case "server down":
121
122
  return [
@@ -129,7 +130,7 @@ var OidcInitializationError = /** @class */ (function (_super) {
129
130
  case "misconfigured OIDC client":
130
131
  return [
131
132
  "The OIDC client ".concat(params.likelyCause.clientId, " seems to be misconfigured on your OIDC server."),
132
- "If you are using Keycloak you likely need to add \"".concat(location.origin, "/*\" to the list of Valid Redirect URIs"),
133
+ "If you are using Keycloak you likely need to add \"".concat((_a = params.likelyCause.publicUrl) !== null && _a !== void 0 ? _a : window.location.origin, "/*\" to the list of Valid Redirect URIs"),
133
134
  "in the ".concat(params.likelyCause.clientId, " client configuration.\n"),
134
135
  "More info: https://docs.oidc-spa.dev/resources/usage-with-keycloak",
135
136
  "Silent SSO timed out after ".concat(params.likelyCause.timeoutDelayMs, "ms.")
@@ -146,6 +147,24 @@ var OidcInitializationError = /** @class */ (function (_super) {
146
147
  "".concat(params.likelyCause.silentSsoHtmlUrl, " is not reachable. Make sure you've created the silent-sso.html file"),
147
148
  "in your public directory. More info: https://docs.oidc-spa.dev/documentation/installation"
148
149
  ].join(" ");
150
+ case "frame-ancestors none":
151
+ return [
152
+ params.likelyCause.silentSso.hasDedicatedHtmlFile
153
+ ? "The silent-sso.html file, "
154
+ : "The URI used for Silent SSO, ",
155
+ "".concat(params.likelyCause.silentSso.redirectUri, ", "),
156
+ "is served by your web server with the HTTP header `Content-Security-Policy: frame-ancestors none` in the response.\n",
157
+ "This header prevents the silent sign-in process from working.\n",
158
+ "To fix this issue, you should configure your web server to not send this header or to use `frame-ancestors self` instead of `frame-ancestors none`.\n",
159
+ "If you use Nginx, you can replace:\n",
160
+ "add_header Content-Security-Policy \"frame-ancestors 'none'\";\n",
161
+ "with:\n",
162
+ "map $uri $add_content_security_policy {\n",
163
+ " \"~*silent-sso.html$\" \"frame-ancestors 'self'\";\n",
164
+ " default \"frame-ancestors 'none'\";\n",
165
+ "}\n",
166
+ "add_header Content-Security-Policy $add_content_security_policy;\n"
167
+ ].join(" ");
149
168
  }
150
169
  case "unknown":
151
170
  return params.cause.message;
@@ -168,12 +187,12 @@ var URL_real = window.URL;
168
187
  /** @see: https://github.com/garronej/oidc-spa#option-1-usage-without-involving-the-ui-framework */
169
188
  function createOidc(params) {
170
189
  return __awaiter(this, void 0, void 0, function () {
171
- var issuerUri, clientId, clientSecret, _a, transformUrlBeforeRedirect, extraQueryParamsOrGetter, publicUrl_params, decodedIdTokenSchema, __unsafe_ssoSessionIdleSeconds, _b, autoLogoutParams, getExtraQueryParams, publicUrl, configHash, cleanups, configHashKey, silentSso, silentSsoKey, result, oidcClientTsUserManager, lastPublicRoute, startTrackingLastPublicRoute, hasLoginBeenCalled, login, resultOfLoginProcess, common, error, initializationError, currentTokens, autoLogoutCountdownTickCallbacks, onTokenChanges, oidc, getMsBeforeExpiration_1, startCountdown_2, stopCountdown_1, unsubscribeFrom$isUserActive_1, hotReloadCleanupsForThisConfig;
190
+ var issuerUri, clientId, clientSecret, _a, transformUrlBeforeRedirect, extraQueryParamsOrGetter, publicUrl_params, decodedIdTokenSchema, __unsafe_ssoSessionIdleSeconds, _b, autoLogoutParams, _c, isAuthRequiredOnEveryPages, postLoginRedirectUrl, getExtraQueryParams, publicUrl, configHash, cleanups, configHashKey, silentSso, silentSsoKey, result, oidcClientTsUserManager, lastPublicRoute, startTrackingLastPublicRoute, hasLoginBeenCalled, login, resultOfLoginProcess, common, error, initializationError, oidc_1, oidc_2, currentTokens, autoLogoutCountdownTickCallbacks, onTokenChanges, oidc, getMsBeforeExpiration_1, startCountdown_2, stopCountdown_1, unsubscribeFrom$isUserActive_1, hotReloadCleanupsForThisConfig;
172
191
  var _this = this;
173
- return __generator(this, function (_c) {
174
- switch (_c.label) {
192
+ return __generator(this, function (_d) {
193
+ switch (_d.label) {
175
194
  case 0:
176
- 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, __unsafe_ssoSessionIdleSeconds = params.__unsafe_ssoSessionIdleSeconds, _b = params.autoLogoutParams, autoLogoutParams = _b === void 0 ? { "redirectTo": "current page" } : _b;
195
+ 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, __unsafe_ssoSessionIdleSeconds = params.__unsafe_ssoSessionIdleSeconds, _b = params.autoLogoutParams, autoLogoutParams = _b === void 0 ? { "redirectTo": "current page" } : _b, _c = params.isAuthRequiredOnEveryPages, isAuthRequiredOnEveryPages = _c === void 0 ? false : _c, postLoginRedirectUrl = params.postLoginRedirectUrl;
177
196
  getExtraQueryParams = (function () {
178
197
  if (typeof extraQueryParamsOrGetter === "function") {
179
198
  return extraQueryParamsOrGetter;
@@ -234,14 +253,14 @@ function createOidc(params) {
234
253
  // Here the user forget to create the silent-sso.html file or or the web server is not serving it correctly
235
254
  // we shouldn't fall back to the SPA page.
236
255
  // In this case we want to let the timeout of the parent expire to provide the correct error message.
237
- _c.sent();
238
- _c.label = 2;
256
+ _d.sent();
257
+ _d.label = 2;
239
258
  case 2:
240
259
  parent.postMessage(location.href, location.origin);
241
260
  return [4 /*yield*/, new Promise(function () { })];
242
261
  case 3:
243
- _c.sent();
244
- _c.label = 4;
262
+ _d.sent();
263
+ _d.label = 4;
245
264
  case 4:
246
265
  oidcClientTsUserManager = new oidc_client_ts_1.UserManager({
247
266
  "authority": issuerUri,
@@ -512,11 +531,12 @@ function createOidc(params) {
512
531
  return Math.max(baseDelay, dynamicDelay);
513
532
  })();
514
533
  timeout_1 = (0, worker_timers_1.setTimeout)(function () { return __awaiter(_this, void 0, void 0, function () {
515
- var isSilentSsoHtmlReachable;
534
+ var dedicatedSilentSsoHtmlFileCsp, isSilentSsoHtmlReachable, csp, hasFrameAncestorsNone;
516
535
  var _this = this;
517
536
  return __generator(this, function (_a) {
518
537
  switch (_a.label) {
519
538
  case 0:
539
+ dedicatedSilentSsoHtmlFileCsp = undefined;
520
540
  if (!silentSso.hasDedicatedHtmlFile) {
521
541
  return [3 /*break*/, 2];
522
542
  }
@@ -524,7 +544,10 @@ function createOidc(params) {
524
544
  var content;
525
545
  return __generator(this, function (_a) {
526
546
  switch (_a.label) {
527
- case 0: return [4 /*yield*/, response.text()];
547
+ case 0:
548
+ dedicatedSilentSsoHtmlFileCsp =
549
+ response.headers.get("Content-Security-Policy");
550
+ return [4 /*yield*/, response.text()];
528
551
  case 1:
529
552
  content = _a.sent();
530
553
  return [2 /*return*/, (content.length < 250 &&
@@ -545,7 +568,48 @@ function createOidc(params) {
545
568
  }
546
569
  }));
547
570
  return [2 /*return*/];
548
- case 2:
571
+ case 2: return [4 /*yield*/, (function () { return __awaiter(_this, void 0, void 0, function () {
572
+ var csp;
573
+ return __generator(this, function (_a) {
574
+ switch (_a.label) {
575
+ case 0:
576
+ if (silentSso.hasDedicatedHtmlFile) {
577
+ (0, assert_1.assert)(dedicatedSilentSsoHtmlFileCsp !== undefined);
578
+ return [2 /*return*/, dedicatedSilentSsoHtmlFileCsp];
579
+ }
580
+ return [4 /*yield*/, fetch(silentSso.redirectUri).then(function (response) { return response.headers.get("Content-Security-Policy"); }, function (error) { return (0, id_1.id)(error); })];
581
+ case 1:
582
+ csp = _a.sent();
583
+ if (csp instanceof Error) {
584
+ dLoginSuccessUrl_1.reject(new Error("Failed to fetch ".concat(silentSso.redirectUri, ": ").concat(csp.message)));
585
+ return [2 /*return*/, new Promise(function () { })];
586
+ }
587
+ return [2 /*return*/, csp];
588
+ }
589
+ });
590
+ }); })()];
591
+ case 3:
592
+ csp = _a.sent();
593
+ if (csp === null) {
594
+ return [3 /*break*/, 4];
595
+ }
596
+ hasFrameAncestorsNone = csp
597
+ .replace(/"'/g, "")
598
+ .replace(/\s+/g, " ")
599
+ .toLowerCase()
600
+ .includes("frame-ancestors none");
601
+ if (!hasFrameAncestorsNone) {
602
+ return [3 /*break*/, 4];
603
+ }
604
+ dLoginSuccessUrl_1.reject(new OidcInitializationError({
605
+ "type": "bad configuration",
606
+ "likelyCause": {
607
+ "type": "frame-ancestors none",
608
+ silentSso: silentSso
609
+ }
610
+ }));
611
+ return [2 /*return*/];
612
+ case 4:
549
613
  // Here we know that the server is not down and that the issuer_uri is correct
550
614
  // otherwise we would have had a fetch error when loading the iframe.
551
615
  // So this means that it's very likely a OIDC client misconfiguration.
@@ -556,7 +620,8 @@ function createOidc(params) {
556
620
  "likelyCause": {
557
621
  "type": "misconfigured OIDC client",
558
622
  clientId: clientId,
559
- timeoutDelayMs: timeoutDelayMs_1
623
+ timeoutDelayMs: timeoutDelayMs_1,
624
+ publicUrl: publicUrl
560
625
  }
561
626
  }));
562
627
  return [2 /*return*/];
@@ -701,7 +766,7 @@ function createOidc(params) {
701
766
  return error;
702
767
  })];
703
768
  case 5:
704
- resultOfLoginProcess = _c.sent();
769
+ resultOfLoginProcess = _d.sent();
705
770
  common = {
706
771
  "params": {
707
772
  issuerUri: issuerUri,
@@ -716,19 +781,35 @@ function createOidc(params) {
716
781
  "type": "unknown",
717
782
  "cause": error
718
783
  });
784
+ if (isAuthRequiredOnEveryPages) {
785
+ throw initializationError;
786
+ }
719
787
  console.error("OIDC initialization error of type \"".concat(initializationError.type, "\": ").concat(initializationError.message));
720
788
  startTrackingLastPublicRoute();
721
- return [2 /*return*/, (0, id_1.id)(__assign(__assign({}, common), { "isUserLoggedIn": false, "login": function () { return __awaiter(_this, void 0, void 0, function () {
722
- return __generator(this, function (_a) {
723
- alert("Authentication is currently unavailable. Please try again later.");
724
- return [2 /*return*/, new Promise(function () { })];
725
- });
726
- }); }, initializationError: initializationError }))];
727
- }
728
- if (resultOfLoginProcess === undefined) {
729
- startTrackingLastPublicRoute();
730
- return [2 /*return*/, (0, id_1.id)(__assign(__assign({}, common), { "isUserLoggedIn": false, login: login, "initializationError": undefined }))];
789
+ oidc_1 = (0, id_1.id)(__assign(__assign({}, common), { "isUserLoggedIn": false, "login": function () { return __awaiter(_this, void 0, void 0, function () {
790
+ return __generator(this, function (_a) {
791
+ alert("Authentication is currently unavailable. Please try again later.");
792
+ return [2 /*return*/, new Promise(function () { })];
793
+ });
794
+ }); }, initializationError: initializationError }));
795
+ // @ts-expect-error: We know what we are doing.
796
+ return [2 /*return*/, oidc_1];
731
797
  }
798
+ if (!(resultOfLoginProcess === undefined)) return [3 /*break*/, 8];
799
+ if (!isAuthRequiredOnEveryPages) return [3 /*break*/, 7];
800
+ return [4 /*yield*/, login({
801
+ "doesCurrentHrefRequiresAuth": true,
802
+ "redirectUrl": postLoginRedirectUrl
803
+ })];
804
+ case 6:
805
+ _d.sent();
806
+ _d.label = 7;
807
+ case 7:
808
+ startTrackingLastPublicRoute();
809
+ oidc_2 = (0, id_1.id)(__assign(__assign({}, common), { "isUserLoggedIn": false, login: login, "initializationError": undefined }));
810
+ // @ts-expect-error: We know what we are doing.
811
+ return [2 /*return*/, oidc_2];
812
+ case 8:
732
813
  currentTokens = resultOfLoginProcess.tokens;
733
814
  autoLogoutCountdownTickCallbacks = new Set();
734
815
  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.8.1",
3
+ "version": "4.9.0",
4
4
  "description": "Openidconnect client for Single Page Applications",
5
5
  "repository": {
6
6
  "type": "git",
package/react/react.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { type ReactNode } from "react";
2
- import { type ParamsOfCreateOidc, type Oidc, type OidcInitializationError } from "../oidc";
2
+ import { type ParamsOfCreateOidc, type Oidc, OidcInitializationError } from "../oidc";
3
3
  import type { PromiseOrNot } from "../tools/PromiseOrNot";
4
4
  export type OidcReact<DecodedIdToken extends Record<string, unknown>> = OidcReact.NotLoggedIn | OidcReact.LoggedIn<DecodedIdToken>;
5
5
  export declare namespace OidcReact {
@@ -26,38 +26,40 @@ export declare namespace OidcReact {
26
26
  initializationError?: never;
27
27
  };
28
28
  }
29
- export declare function createReactOidc_dependencyInjection<DecodedIdToken extends Record<string, unknown>, ParamsOfCreateOidc extends {
30
- decodedIdTokenSchema: {
31
- parse: (data: unknown) => DecodedIdToken;
32
- } | undefined;
33
- } | {}>(params: ParamsOfCreateOidc, createOidc: (params: ParamsOfCreateOidc) => PromiseOrNot<Oidc<DecodedIdToken>>): {
34
- OidcProvider: (props: {
29
+ type OidcReactApi<DecodedIdToken extends Record<string, unknown>, IsAuthRequiredOnEveryPages extends boolean> = {
30
+ OidcProvider: IsAuthRequiredOnEveryPages extends true ? (props: {
31
+ fallback?: ReactNode;
32
+ children: ReactNode;
33
+ }) => JSX.Element : (props: {
35
34
  fallback?: ReactNode;
35
+ ErrorFallback?: (props: {
36
+ initializationError: OidcInitializationError;
37
+ }) => ReactNode;
36
38
  children: ReactNode;
37
- }) => import("react/jsx-runtime").JSX.Element;
38
- useOidc: {
39
+ }) => JSX.Element;
40
+ useOidc: IsAuthRequiredOnEveryPages extends true ? {
39
41
  (params?: {
40
- assertUserLoggedIn: false;
41
- }): OidcReact<DecodedIdToken>;
42
- (params: {
43
42
  assertUserLoggedIn: true;
44
43
  }): OidcReact.LoggedIn<DecodedIdToken>;
45
- };
46
- prOidc: Promise<Oidc<DecodedIdToken>>;
47
- };
48
- /** @see: https://github.com/garronej/oidc-spa#option-2-usage-directly-within-react */
49
- export declare function createReactOidc<DecodedIdToken extends Record<string, unknown> = Record<string, unknown>>(params: ParamsOfCreateOidc<DecodedIdToken>): {
50
- OidcProvider: (props: {
51
- fallback?: ReactNode;
52
- children: ReactNode;
53
- }) => import("react/jsx-runtime").JSX.Element;
54
- useOidc: {
44
+ } : {
55
45
  (params?: {
56
46
  assertUserLoggedIn: false;
57
- } | undefined): OidcReact<DecodedIdToken>;
47
+ }): OidcReact<DecodedIdToken>;
58
48
  (params: {
59
49
  assertUserLoggedIn: true;
60
- }): OidcReact.LoggedIn<DecodedIdToken>;
50
+ }): OidcReact<DecodedIdToken>;
61
51
  };
62
- prOidc: Promise<Oidc<DecodedIdToken>>;
52
+ prOidc: Promise<IsAuthRequiredOnEveryPages extends true ? Oidc.LoggedIn<DecodedIdToken> : Oidc<DecodedIdToken>>;
63
53
  };
54
+ export declare function createOidcReactApi_dependencyInjection<DecodedIdToken extends Record<string, unknown>, ParamsOfCreateOidc extends {
55
+ isAuthRequiredOnEveryPages?: boolean;
56
+ } & ({
57
+ decodedIdTokenSchema: {
58
+ parse: (data: unknown) => DecodedIdToken;
59
+ } | undefined;
60
+ } | {})>(params: ParamsOfCreateOidc, createOidc: (params: ParamsOfCreateOidc) => PromiseOrNot<Oidc<DecodedIdToken>>): OidcReactApi<DecodedIdToken, ParamsOfCreateOidc extends {
61
+ isAuthRequiredOnEveryPages: boolean;
62
+ } ? ParamsOfCreateOidc["isAuthRequiredOnEveryPages"] : false>;
63
+ /** @see: https://docs.oidc-spa.dev/documentation/usage#react-api */
64
+ export declare function createReactOidc<DecodedIdToken extends Record<string, unknown> = Record<string, unknown>, IsAuthRequiredOnEveryPages extends boolean = false>(params: ParamsOfCreateOidc<DecodedIdToken, IsAuthRequiredOnEveryPages>): OidcReactApi<DecodedIdToken, false>;
65
+ export {};
package/react/react.js CHANGED
@@ -27,7 +27,7 @@ var __read = (this && this.__read) || function (o, n) {
27
27
  return ar;
28
28
  };
29
29
  Object.defineProperty(exports, "__esModule", { value: true });
30
- exports.createReactOidc = exports.createReactOidc_dependencyInjection = void 0;
30
+ exports.createReactOidc = exports.createOidcReactApi_dependencyInjection = void 0;
31
31
  var jsx_runtime_1 = require("react/jsx-runtime");
32
32
  var react_1 = require("react");
33
33
  var oidc_1 = require("../oidc");
@@ -35,19 +35,28 @@ var assert_1 = require("tsafe/assert");
35
35
  var id_1 = require("tsafe/id");
36
36
  var useGuaranteedMemo_1 = require("../tools/powerhooks/useGuaranteedMemo");
37
37
  var oidcContext = (0, react_1.createContext)(undefined);
38
- function createReactOidc_dependencyInjection(params, createOidc) {
39
- var prOidc = Promise.resolve(createOidc(params));
38
+ function createOidcReactApi_dependencyInjection(params, createOidc) {
39
+ var prOidc = Promise.resolve(createOidc(params)).catch(function (error) {
40
+ if (!(error instanceof oidc_1.OidcInitializationError)) {
41
+ throw error;
42
+ }
43
+ return error;
44
+ });
40
45
  var decodedIdTokenSchema = ("decodedIdTokenSchema" in params ? params : { "decodedIdTokenSchema": undefined }).decodedIdTokenSchema;
41
46
  function OidcProvider(props) {
42
- var children = props.children, fallback = props.fallback;
43
- var _a = __read((0, react_1.useState)(undefined), 2), oidc = _a[0], setOidc = _a[1];
47
+ var fallback = props.fallback, ErrorFallback = props.ErrorFallback, children = props.children;
48
+ var _a = __read((0, react_1.useState)(undefined), 2), oidcOrInitializationError = _a[0], setOidcOrInitializationError = _a[1];
44
49
  (0, react_1.useEffect)(function () {
45
- prOidc.then(setOidc);
50
+ prOidc.then(setOidcOrInitializationError);
46
51
  }, []);
47
- if (oidc === undefined) {
52
+ if (oidcOrInitializationError === undefined) {
48
53
  return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: fallback === undefined ? null : fallback });
49
54
  }
50
- return ((0, jsx_runtime_1.jsx)(oidcContext.Provider, { value: { oidc: oidc, decodedIdTokenSchema: decodedIdTokenSchema }, children: children }));
55
+ if (oidcOrInitializationError instanceof oidc_1.OidcInitializationError) {
56
+ var initializationError = oidcOrInitializationError;
57
+ return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: ErrorFallback === undefined ? ((0, jsx_runtime_1.jsxs)("h1", { style: { "color": "red" }, children: ["An error occurred while initializing the OIDC client:\u00A0", initializationError.message] })) : ((0, jsx_runtime_1.jsx)(ErrorFallback, { initializationError: initializationError })) }));
58
+ }
59
+ return ((0, jsx_runtime_1.jsx)(oidcContext.Provider, { value: { oidc: oidcOrInitializationError, decodedIdTokenSchema: decodedIdTokenSchema }, children: children }));
51
60
  }
52
61
  function useOidc(params) {
53
62
  var _a = (params !== null && params !== void 0 ? params : {}).assertUserLoggedIn, assertUserLoggedIn = _a === void 0 ? false : _a;
@@ -113,12 +122,18 @@ function createReactOidc_dependencyInjection(params, createOidc) {
113
122
  ? (0, id_1.id)(((0, assert_1.assert)(oidcTokens !== undefined), __assign(__assign({}, common), { "isUserLoggedIn": true, oidcTokens: oidcTokens, "logout": oidc.logout, "renewTokens": oidc.renewTokens, "subscribeToAutoLogoutCountdown": oidc.subscribeToAutoLogoutCountdown })))
114
123
  : (0, id_1.id)(__assign(__assign({}, common), { "isUserLoggedIn": false, "login": oidc.login, "initializationError": oidc.initializationError }));
115
124
  }
116
- return { OidcProvider: OidcProvider, useOidc: useOidc, prOidc: prOidc };
125
+ return {
126
+ OidcProvider: OidcProvider,
127
+ // @ts-expect-error: We know what we are doing
128
+ useOidc: useOidc,
129
+ // @ts-expect-error: We know what we are doing
130
+ prOidc: prOidc
131
+ };
117
132
  }
118
- exports.createReactOidc_dependencyInjection = createReactOidc_dependencyInjection;
119
- /** @see: https://github.com/garronej/oidc-spa#option-2-usage-directly-within-react */
133
+ exports.createOidcReactApi_dependencyInjection = createOidcReactApi_dependencyInjection;
134
+ /** @see: https://docs.oidc-spa.dev/documentation/usage#react-api */
120
135
  function createReactOidc(params) {
121
- return createReactOidc_dependencyInjection(params, oidc_1.createOidc);
136
+ return createOidcReactApi_dependencyInjection(params, oidc_1.createOidc);
122
137
  }
123
138
  exports.createReactOidc = createReactOidc;
124
139
  //# sourceMappingURL=react.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react/react.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react/react.tsx"],"names":[],"mappings":"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"}
package/src/index.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  export { createOidc } from "./oidc";
2
- export type { Oidc } from "./oidc";
2
+ export type { Oidc, OidcInitializationError } from "./oidc";
3
3
  export { decodeJwt } from "./tools/decodeJwt";
package/src/mock/oidc.ts CHANGED
@@ -5,24 +5,32 @@ import { createObjectThatThrowsIfAccessed } from "../tools/createObjectThatThrow
5
5
  import { assert, type Equals } from "tsafe/assert";
6
6
 
7
7
  export type ParamsOfCreateMockOidc<
8
- DecodedIdToken extends Record<string, unknown> = Record<string, unknown>
8
+ DecodedIdToken extends Record<string, unknown> = Record<string, unknown>,
9
+ IsAuthRequiredOnEveryPages extends boolean = false
9
10
  > = {
10
11
  isUserInitiallyLoggedIn: boolean;
11
12
  mockedParams?: Partial<Oidc["params"]>;
12
13
  mockedTokens?: Partial<Oidc.Tokens<DecodedIdToken>>;
13
14
  publicUrl?: string;
15
+ isAuthRequiredOnEveryPages?: IsAuthRequiredOnEveryPages;
16
+ postLoginRedirectUrl?: string;
14
17
  };
15
18
 
16
19
  const urlParamName = "isUserLoggedIn";
17
20
 
18
- export function createMockOidc<DecodedIdToken extends Record<string, unknown> = Record<string, unknown>>(
19
- params: ParamsOfCreateMockOidc<DecodedIdToken>
20
- ): Oidc<DecodedIdToken> {
21
+ export function createMockOidc<
22
+ DecodedIdToken extends Record<string, unknown> = Record<string, unknown>,
23
+ IsAuthRequiredOnEveryPages extends boolean = false
24
+ >(
25
+ params: ParamsOfCreateMockOidc<DecodedIdToken, IsAuthRequiredOnEveryPages>
26
+ ): IsAuthRequiredOnEveryPages extends true ? Oidc.LoggedIn<DecodedIdToken> : Oidc<DecodedIdToken> {
21
27
  const {
22
28
  isUserInitiallyLoggedIn,
23
29
  mockedParams = {},
24
30
  mockedTokens = {},
25
- publicUrl: publicUrl_params
31
+ publicUrl: publicUrl_params,
32
+ isAuthRequiredOnEveryPages = false,
33
+ postLoginRedirectUrl
26
34
  } = params;
27
35
 
28
36
  const isUserLoggedIn = (() => {
@@ -60,12 +68,19 @@ export function createMockOidc<DecodedIdToken extends Record<string, unknown> =
60
68
  };
61
69
 
62
70
  if (!isUserLoggedIn) {
63
- return id<Oidc.NotLoggedIn>({
71
+ const oidc = id<Oidc.NotLoggedIn>({
64
72
  ...common,
65
73
  "isUserLoggedIn": false,
66
- "login": async () => {
74
+ "login": async ({ redirectUrl }) => {
67
75
  const { newUrl } = addQueryParamToUrl({
68
- "url": window.location.href,
76
+ "url": (() => {
77
+ if (redirectUrl === undefined) {
78
+ return window.location.href;
79
+ }
80
+ return redirectUrl.startsWith("/")
81
+ ? `${window.location.origin}${redirectUrl}`
82
+ : redirectUrl;
83
+ })(),
69
84
  "name": urlParamName,
70
85
  "value": "true"
71
86
  });
@@ -76,6 +91,15 @@ export function createMockOidc<DecodedIdToken extends Record<string, unknown> =
76
91
  },
77
92
  "initializationError": undefined
78
93
  });
94
+ if (!isAuthRequiredOnEveryPages) {
95
+ oidc.login({
96
+ "redirectUrl": postLoginRedirectUrl,
97
+ "doesCurrentHrefRequiresAuth": true
98
+ });
99
+ assert(false);
100
+ }
101
+ // @ts-expect-error: We know what we are doing
102
+ return oidc;
79
103
  }
80
104
 
81
105
  return id<Oidc.LoggedIn<DecodedIdToken>>({
@@ -1,8 +1,10 @@
1
- import { createReactOidc_dependencyInjection } from "../react/react";
1
+ import { createOidcReactApi_dependencyInjection } from "../react/react";
2
2
  import { createMockOidc, type ParamsOfCreateMockOidc } from "./oidc";
3
3
 
4
+ /** @see: https://docs.oidc-spa.dev/documentation/mock */
4
5
  export function createMockReactOidc<
5
- DecodedIdToken extends Record<string, unknown> = Record<string, unknown>
6
- >(params: ParamsOfCreateMockOidc<DecodedIdToken>) {
7
- return createReactOidc_dependencyInjection(params, createMockOidc);
6
+ DecodedIdToken extends Record<string, unknown> = Record<string, unknown>,
7
+ IsAuthRequiredOnEveryPages extends boolean = false
8
+ >(params: ParamsOfCreateMockOidc<DecodedIdToken, IsAuthRequiredOnEveryPages>) {
9
+ return createOidcReactApi_dependencyInjection(params, createMockOidc);
8
10
  }
package/src/oidc.ts CHANGED
@@ -92,6 +92,7 @@ export class OidcInitializationError extends Error {
92
92
  type: "misconfigured OIDC client";
93
93
  clientId: string;
94
94
  timeoutDelayMs: number;
95
+ publicUrl: string | undefined;
95
96
  }
96
97
  | {
97
98
  type: "not in Web Origins";
@@ -100,6 +101,13 @@ export class OidcInitializationError extends Error {
100
101
  | {
101
102
  type: "silent-sso.html not reachable";
102
103
  silentSsoHtmlUrl: string;
104
+ }
105
+ | {
106
+ type: "frame-ancestors none";
107
+ silentSso: {
108
+ hasDedicatedHtmlFile: boolean;
109
+ redirectUri: string;
110
+ };
103
111
  };
104
112
  }
105
113
  | {
@@ -122,7 +130,9 @@ export class OidcInitializationError extends Error {
122
130
  case "misconfigured OIDC client":
123
131
  return [
124
132
  `The OIDC client ${params.likelyCause.clientId} seems to be misconfigured on your OIDC server.`,
125
- `If you are using Keycloak you likely need to add "${location.origin}/*" to the list of Valid Redirect URIs`,
133
+ `If you are using Keycloak you likely need to add "${
134
+ params.likelyCause.publicUrl ?? window.location.origin
135
+ }/*" to the list of Valid Redirect URIs`,
126
136
  `in the ${params.likelyCause.clientId} client configuration.\n`,
127
137
  `More info: https://docs.oidc-spa.dev/resources/usage-with-keycloak`,
128
138
  `Silent SSO timed out after ${params.likelyCause.timeoutDelayMs}ms.`
@@ -139,6 +149,24 @@ export class OidcInitializationError extends Error {
139
149
  `${params.likelyCause.silentSsoHtmlUrl} is not reachable. Make sure you've created the silent-sso.html file`,
140
150
  `in your public directory. More info: https://docs.oidc-spa.dev/documentation/installation`
141
151
  ].join(" ");
152
+ case "frame-ancestors none":
153
+ return [
154
+ params.likelyCause.silentSso.hasDedicatedHtmlFile
155
+ ? `The silent-sso.html file, `
156
+ : `The URI used for Silent SSO, `,
157
+ `${params.likelyCause.silentSso.redirectUri}, `,
158
+ "is served by your web server with the HTTP header `Content-Security-Policy: frame-ancestors none` in the response.\n",
159
+ "This header prevents the silent sign-in process from working.\n",
160
+ "To fix this issue, you should configure your web server to not send this header or to use `frame-ancestors self` instead of `frame-ancestors none`.\n",
161
+ "If you use Nginx, you can replace:\n",
162
+ `add_header Content-Security-Policy "frame-ancestors 'none'";\n`,
163
+ "with:\n",
164
+ `map $uri $add_content_security_policy {\n`,
165
+ ` "~*silent-sso\.html$" "frame-ancestors 'self'";\n`,
166
+ ` default "frame-ancestors 'none'";\n`,
167
+ `}\n`,
168
+ `add_header Content-Security-Policy $add_content_security_policy;\n`
169
+ ].join(" ");
142
170
  }
143
171
  case "unknown":
144
172
  return params.cause.message;
@@ -156,11 +184,15 @@ export class OidcInitializationError extends Error {
156
184
  const paramsToRetrieveFromSuccessfulLogin = ["code", "state", "session_state", "iss"] as const;
157
185
 
158
186
  export type ParamsOfCreateOidc<
159
- DecodedIdToken extends Record<string, unknown> = Record<string, unknown>
187
+ DecodedIdToken extends Record<string, unknown> = Record<string, unknown>,
188
+ IsAuthRequiredOnEveryPages extends boolean = false
160
189
  > = {
161
190
  issuerUri: string;
162
191
  clientId: string;
163
192
  clientSecret?: string;
193
+ /**
194
+ * Transform the url before redirecting to the login pages.
195
+ */
164
196
  transformUrlBeforeRedirect?: (url: string) => string;
165
197
  /**
166
198
  * Extra query params to be added on the login url.
@@ -168,8 +200,19 @@ export type ParamsOfCreateOidc<
168
200
  * when login() is called.
169
201
  *
170
202
  * Example: extraQueryParams: ()=> ({ ui_locales: "fr" })
203
+ *
204
+ * This parameter can also be passed to login() directly.
171
205
  */
172
206
  extraQueryParams?: Record<string, string> | (() => Record<string, string>);
207
+ /**
208
+ * Where to redirect after successful login.
209
+ * Default: window.location.href (here)
210
+ *
211
+ * It does not need to include the origin, eg: "/dashboard"
212
+ *
213
+ * This parameter can also be passed to login() directly as `redirectUrl`.
214
+ */
215
+ postLoginRedirectUrl?: string;
173
216
  /**
174
217
  * This parameter is used to let oidc-spa knows where to find the silent-sso.html file
175
218
  * and also to know what is the root path of your application so it can redirect to it after logout.
@@ -198,6 +241,7 @@ export type ParamsOfCreateOidc<
198
241
  __unsafe_ssoSessionIdleSeconds?: number;
199
242
 
200
243
  autoLogoutParams?: Parameters<Oidc.LoggedIn<any>["logout"]>[0];
244
+ isAuthRequiredOnEveryPages?: IsAuthRequiredOnEveryPages;
201
245
  };
202
246
 
203
247
  let $isUserActive: StatefulObservable<boolean> | undefined = undefined;
@@ -207,8 +251,13 @@ const URL_real = window.URL;
207
251
 
208
252
  /** @see: https://github.com/garronej/oidc-spa#option-1-usage-without-involving-the-ui-framework */
209
253
  export async function createOidc<
210
- DecodedIdToken extends Record<string, unknown> = Record<string, unknown>
211
- >(params: ParamsOfCreateOidc<DecodedIdToken>): Promise<Oidc<DecodedIdToken>> {
254
+ DecodedIdToken extends Record<string, unknown> = Record<string, unknown>,
255
+ IsAuthRequiredOnEveryPages extends boolean = false
256
+ >(
257
+ params: ParamsOfCreateOidc<DecodedIdToken, IsAuthRequiredOnEveryPages>
258
+ ): Promise<
259
+ IsAuthRequiredOnEveryPages extends true ? Oidc.LoggedIn<DecodedIdToken> : Oidc<DecodedIdToken>
260
+ > {
212
261
  const {
213
262
  issuerUri,
214
263
  clientId,
@@ -218,7 +267,9 @@ export async function createOidc<
218
267
  publicUrl: publicUrl_params,
219
268
  decodedIdTokenSchema,
220
269
  __unsafe_ssoSessionIdleSeconds,
221
- autoLogoutParams = { "redirectTo": "current page" }
270
+ autoLogoutParams = { "redirectTo": "current page" },
271
+ isAuthRequiredOnEveryPages = false,
272
+ postLoginRedirectUrl
222
273
  } = params;
223
274
 
224
275
  const getExtraQueryParams = (() => {
@@ -594,6 +645,8 @@ export async function createOidc<
594
645
  })();
595
646
 
596
647
  const timeout = setTimeout(async () => {
648
+ let dedicatedSilentSsoHtmlFileCsp: string | null | undefined = undefined;
649
+
597
650
  silent_sso_html_unreachable: {
598
651
  if (!silentSso.hasDedicatedHtmlFile) {
599
652
  break silent_sso_html_unreachable;
@@ -601,6 +654,9 @@ export async function createOidc<
601
654
 
602
655
  const isSilentSsoHtmlReachable = await fetch(silentSso.redirectUri).then(
603
656
  async response => {
657
+ dedicatedSilentSsoHtmlFileCsp =
658
+ response.headers.get("Content-Security-Policy");
659
+
604
660
  const content = await response.text();
605
661
 
606
662
  return (
@@ -627,6 +683,54 @@ export async function createOidc<
627
683
  return;
628
684
  }
629
685
 
686
+ frame_ancestors_none: {
687
+ const csp = await (async () => {
688
+ if (silentSso.hasDedicatedHtmlFile) {
689
+ assert(dedicatedSilentSsoHtmlFileCsp !== undefined);
690
+ return dedicatedSilentSsoHtmlFileCsp;
691
+ }
692
+
693
+ const csp = await fetch(silentSso.redirectUri).then(
694
+ response => response.headers.get("Content-Security-Policy"),
695
+ error => id<Error>(error)
696
+ );
697
+
698
+ if (csp instanceof Error) {
699
+ dLoginSuccessUrl.reject(
700
+ new Error(`Failed to fetch ${silentSso.redirectUri}: ${csp.message}`)
701
+ );
702
+ return new Promise<never>(() => {});
703
+ }
704
+
705
+ return csp;
706
+ })();
707
+
708
+ if (csp === null) {
709
+ break frame_ancestors_none;
710
+ }
711
+
712
+ const hasFrameAncestorsNone = csp
713
+ .replace(/"'/g, "")
714
+ .replace(/\s+/g, " ")
715
+ .toLowerCase()
716
+ .includes("frame-ancestors none");
717
+
718
+ if (!hasFrameAncestorsNone) {
719
+ break frame_ancestors_none;
720
+ }
721
+
722
+ dLoginSuccessUrl.reject(
723
+ new OidcInitializationError({
724
+ "type": "bad configuration",
725
+ "likelyCause": {
726
+ "type": "frame-ancestors none",
727
+ silentSso
728
+ }
729
+ })
730
+ );
731
+ return;
732
+ }
733
+
630
734
  // Here we know that the server is not down and that the issuer_uri is correct
631
735
  // otherwise we would have had a fetch error when loading the iframe.
632
736
  // So this means that it's very likely a OIDC client misconfiguration.
@@ -638,7 +742,8 @@ export async function createOidc<
638
742
  "likelyCause": {
639
743
  "type": "misconfigured OIDC client",
640
744
  clientId,
641
- timeoutDelayMs
745
+ timeoutDelayMs,
746
+ publicUrl
642
747
  }
643
748
  })
644
749
  );
@@ -820,13 +925,17 @@ export async function createOidc<
820
925
  "cause": error
821
926
  });
822
927
 
928
+ if (isAuthRequiredOnEveryPages) {
929
+ throw initializationError;
930
+ }
931
+
823
932
  console.error(
824
933
  `OIDC initialization error of type "${initializationError.type}": ${initializationError.message}`
825
934
  );
826
935
 
827
936
  startTrackingLastPublicRoute();
828
937
 
829
- return id<Oidc.NotLoggedIn>({
938
+ const oidc = id<Oidc.NotLoggedIn>({
830
939
  ...common,
831
940
  "isUserLoggedIn": false,
832
941
  "login": async () => {
@@ -835,17 +944,30 @@ export async function createOidc<
835
944
  },
836
945
  initializationError
837
946
  });
947
+
948
+ // @ts-expect-error: We know what we are doing.
949
+ return oidc;
838
950
  }
839
951
 
840
952
  if (resultOfLoginProcess === undefined) {
953
+ if (isAuthRequiredOnEveryPages) {
954
+ await login({
955
+ "doesCurrentHrefRequiresAuth": true,
956
+ "redirectUrl": postLoginRedirectUrl
957
+ });
958
+ }
959
+
841
960
  startTrackingLastPublicRoute();
842
961
 
843
- return id<Oidc.NotLoggedIn>({
962
+ const oidc = id<Oidc.NotLoggedIn>({
844
963
  ...common,
845
964
  "isUserLoggedIn": false,
846
965
  login,
847
966
  "initializationError": undefined
848
967
  });
968
+
969
+ // @ts-expect-error: We know what we are doing.
970
+ return oidc;
849
971
  }
850
972
 
851
973
  let currentTokens = resultOfLoginProcess.tokens;
@@ -1,5 +1,5 @@
1
1
  import { useEffect, useState, createContext, useContext, useReducer, type ReactNode } from "react";
2
- import { createOidc, type ParamsOfCreateOidc, type Oidc, type OidcInitializationError } from "../oidc";
2
+ import { createOidc, type ParamsOfCreateOidc, type Oidc, 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";
@@ -44,35 +44,99 @@ const oidcContext = createContext<
44
44
  | undefined
45
45
  >(undefined);
46
46
 
47
- export function createReactOidc_dependencyInjection<
47
+ type OidcReactApi<
48
48
  DecodedIdToken extends Record<string, unknown>,
49
- ParamsOfCreateOidc extends
50
- | { decodedIdTokenSchema: { parse: (data: unknown) => DecodedIdToken } | undefined }
49
+ IsAuthRequiredOnEveryPages extends boolean
50
+ > = {
51
+ // TODO: Error fallback when auth required on every pages.
52
+ OidcProvider: IsAuthRequiredOnEveryPages extends true
53
+ ? (props: { fallback?: ReactNode; children: ReactNode }) => JSX.Element
54
+ : (props: {
55
+ fallback?: ReactNode;
56
+ ErrorFallback?: (props: { initializationError: OidcInitializationError }) => ReactNode;
57
+ children: ReactNode;
58
+ }) => JSX.Element;
59
+ useOidc: IsAuthRequiredOnEveryPages extends true
60
+ ? {
61
+ (params?: { assertUserLoggedIn: true }): OidcReact.LoggedIn<DecodedIdToken>;
62
+ }
63
+ : {
64
+ (params?: { assertUserLoggedIn: false }): OidcReact<DecodedIdToken>;
65
+ (params: { assertUserLoggedIn: true }): OidcReact<DecodedIdToken>;
66
+ };
67
+ prOidc: Promise<
68
+ IsAuthRequiredOnEveryPages extends true ? Oidc.LoggedIn<DecodedIdToken> : Oidc<DecodedIdToken>
69
+ >;
70
+ };
71
+
72
+ export function createOidcReactApi_dependencyInjection<
73
+ DecodedIdToken extends Record<string, unknown>,
74
+ ParamsOfCreateOidc extends {
75
+ isAuthRequiredOnEveryPages?: boolean;
76
+ } & (
77
+ | {
78
+ decodedIdTokenSchema: { parse: (data: unknown) => DecodedIdToken } | undefined;
79
+ }
51
80
  | {}
81
+ )
52
82
  >(
53
83
  params: ParamsOfCreateOidc,
54
84
  createOidc: (params: ParamsOfCreateOidc) => PromiseOrNot<Oidc<DecodedIdToken>>
55
- ) {
56
- const prOidc = Promise.resolve(createOidc(params));
85
+ ): OidcReactApi<
86
+ DecodedIdToken,
87
+ ParamsOfCreateOidc extends { isAuthRequiredOnEveryPages: boolean }
88
+ ? ParamsOfCreateOidc["isAuthRequiredOnEveryPages"]
89
+ : false
90
+ > {
91
+ const prOidc = Promise.resolve(createOidc(params)).catch(error => {
92
+ if (!(error instanceof OidcInitializationError)) {
93
+ throw error;
94
+ }
95
+
96
+ return error;
97
+ });
57
98
 
58
99
  const { decodedIdTokenSchema } =
59
100
  "decodedIdTokenSchema" in params ? params : { "decodedIdTokenSchema": undefined };
60
101
 
61
- function OidcProvider(props: { fallback?: ReactNode; children: ReactNode }) {
62
- const { children, fallback } = props;
102
+ function OidcProvider(props: {
103
+ fallback?: ReactNode;
104
+ ErrorFallback?: (props: { initializationError: OidcInitializationError }) => ReactNode;
105
+ children: ReactNode;
106
+ }) {
107
+ const { fallback, ErrorFallback, children } = props;
63
108
 
64
- const [oidc, setOidc] = useState<Oidc | undefined>(undefined);
109
+ const [oidcOrInitializationError, setOidcOrInitializationError] = useState<
110
+ Oidc | OidcInitializationError | undefined
111
+ >(undefined);
65
112
 
66
113
  useEffect(() => {
67
- prOidc.then(setOidc);
114
+ prOidc.then(setOidcOrInitializationError);
68
115
  }, []);
69
116
 
70
- if (oidc === undefined) {
117
+ if (oidcOrInitializationError === undefined) {
71
118
  return <>{fallback === undefined ? null : fallback}</>;
72
119
  }
73
120
 
121
+ if (oidcOrInitializationError instanceof OidcInitializationError) {
122
+ const initializationError = oidcOrInitializationError;
123
+
124
+ return (
125
+ <>
126
+ {ErrorFallback === undefined ? (
127
+ <h1 style={{ "color": "red" }}>
128
+ An error occurred while initializing the OIDC client:&nbsp;
129
+ {initializationError.message}
130
+ </h1>
131
+ ) : (
132
+ <ErrorFallback initializationError={initializationError} />
133
+ )}
134
+ </>
135
+ );
136
+ }
137
+
74
138
  return (
75
- <oidcContext.Provider value={{ oidc, decodedIdTokenSchema }}>
139
+ <oidcContext.Provider value={{ oidc: oidcOrInitializationError, decodedIdTokenSchema }}>
76
140
  {children}
77
141
  </oidcContext.Provider>
78
142
  );
@@ -185,12 +249,19 @@ export function createReactOidc_dependencyInjection<
185
249
  });
186
250
  }
187
251
 
188
- return { OidcProvider, useOidc, prOidc };
252
+ return {
253
+ OidcProvider,
254
+ // @ts-expect-error: We know what we are doing
255
+ useOidc,
256
+ // @ts-expect-error: We know what we are doing
257
+ prOidc
258
+ };
189
259
  }
190
260
 
191
- /** @see: https://github.com/garronej/oidc-spa#option-2-usage-directly-within-react */
261
+ /** @see: https://docs.oidc-spa.dev/documentation/usage#react-api */
192
262
  export function createReactOidc<
193
- DecodedIdToken extends Record<string, unknown> = Record<string, unknown>
194
- >(params: ParamsOfCreateOidc<DecodedIdToken>) {
195
- return createReactOidc_dependencyInjection(params, createOidc);
263
+ DecodedIdToken extends Record<string, unknown> = Record<string, unknown>,
264
+ IsAuthRequiredOnEveryPages extends boolean = false
265
+ >(params: ParamsOfCreateOidc<DecodedIdToken, IsAuthRequiredOnEveryPages>) {
266
+ return createOidcReactApi_dependencyInjection(params, createOidc);
196
267
  }