oidc-spa 6.12.5 → 6.13.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/README.md CHANGED
@@ -38,11 +38,10 @@ There are also plenty of self-hosted options like Keycloak, Ory Hydra, and Dex.
38
38
  What all of these have in common is that they implement the OpenID Connect/OAuth2 standard.
39
39
 
40
40
  This library provides a **unified way** to connect with these different providers instead of having to use
41
- their specific SDKs.
42
- When a user clicks the **"Login"** button in your app, just call the `login()` method—it's that simple.
41
+ their specific SDKs.
43
42
 
44
- `oidc-spa` implement the [**Authorization Code Flow with PKCE**](https://docs.oidc-spa.dev/resources/why-no-client-secret), this means that **you do not need a backend** to handle the authentication process.
45
- The authentication process is handled entirely in the browser. No need for `/login` or `/logout` routes.
43
+ `oidc-spa` implement the [**Authorization Code Flow with PKCE**](https://docs.oidc-spa.dev/resources/why-no-client-secret), this means that **you do not need a backend and a database** to handle the authentication process.
44
+ The authentication process is handled entirely in the browser. And no need for `/login` or `/logout` routes.
46
45
 
47
46
  ## Why `oidc-spa`?
48
47
 
@@ -67,10 +66,10 @@ We wanted a **universal solution**—one that is as good or better than all exis
67
66
 
68
67
  - 🎓 **No OIDC/OAuth2 expertise required**: Easy to setup and use. We're here to help [on Discord](https://discord.gg/mJdYJSdcm4)!
69
68
  - 🛠️ **Simple setup**: No need to define `/login` or `/logout` routes—token refreshing is automatic, it just works.
70
- - ✨ **React integration**: Expose a framework agnostic API (`oidc-spa`) but also a React adapter `oidc-spa/react`.
69
+ - ✨ **React integration**: Expose a framework agnostic API but also a React adapter `oidc-spa/react`.
71
70
  - 🔥 **No limitation**- For example, everything you could do with `keycloak-js`, you can do with `oidc-spa`.
72
71
  - 💬 **Detailed debug messages**: If your OIDC server is not properly configured, it tells you precisely what’s wrong and what you need to do to fix it.
73
- - 🕣 **Auto logout with countdown**: "You will be logged out in 10... 9... 8..."users see exactly when their session expires.
72
+ - 🕣 **Auto logout with countdown**: "You will be logged out in 10... 9... 8...", users see exactly when their session expires.
74
73
  - 🚪 **Logout propagation**: Logging out in one tab logs out all others.
75
74
  - 📖 **Comprehensive documentation**: Guides and examples for common scenarios.
76
75
  - ✅ **Type safety**: Strong TypeScript support with optional [Zod](https://zod.dev/) integration validating the expected shape of the ID token.
@@ -125,7 +125,7 @@ var isNewBrowserSession_1 = require("./isNewBrowserSession");
125
125
  var trustedFetch_1 = require("./trustedFetch");
126
126
  (0, handleOidcCallback_1.handleOidcCallback)();
127
127
  // NOTE: Replaced at build time
128
- var VERSION = "6.12.5";
128
+ var VERSION = "6.13.0";
129
129
  var globalContext = {
130
130
  prOidcByConfigId: new Map(),
131
131
  hasLogoutBeenCalled: (0, tsafe_1.id)(false),
package/mock/react.d.ts CHANGED
@@ -46,5 +46,10 @@ export declare function createMockReactOidc<DecodedIdToken extends Record<string
46
46
  withLoginEnforced: <Props extends Record<string, unknown>>(Component: import("react").ComponentType<Props>, params?: {
47
47
  onRedirecting: () => import("react").JSX.Element | null;
48
48
  }) => import("react").FC<Props>;
49
- enforceLogin: (redirectUrl?: string) => Promise<void | never>;
49
+ enforceLogin: (loaderParams: {
50
+ request?: {
51
+ url?: string;
52
+ };
53
+ cause?: "preload" | string;
54
+ }) => Promise<void | never>;
50
55
  } : never : never);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oidc-spa",
3
- "version": "6.12.5",
3
+ "version": "6.13.0",
4
4
  "description": "Openidconnect client for Single Page Applications",
5
5
  "repository": {
6
6
  "type": "git",
package/react/react.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { type ReactNode, type ComponentType, type FC, JSX } from "react";
1
+ import { type ReactNode, type ComponentType, type FC, type JSX } from "react";
2
2
  import { type Oidc, type ParamsOfCreateOidc, OidcInitializationError } from "../core";
3
3
  import type { ValueOrAsyncGetter } from "../tools/ValueOrAsyncGetter";
4
4
  export type OidcReact<DecodedIdToken extends Record<string, unknown>> = OidcReact.NotLoggedIn | OidcReact.LoggedIn<DecodedIdToken>;
@@ -81,7 +81,12 @@ type OidcReactApi<DecodedIdToken extends Record<string, unknown>, AutoLogin exte
81
81
  withLoginEnforced: <Props extends Record<string, unknown>>(Component: ComponentType<Props>, params?: {
82
82
  onRedirecting: () => JSX.Element | null;
83
83
  }) => FC<Props>;
84
- enforceLogin: (redirectUrl?: string) => Promise<void | never>;
84
+ enforceLogin: (loaderParams: {
85
+ request?: {
86
+ url?: string;
87
+ };
88
+ cause?: "preload" | string;
89
+ }) => Promise<void | never>;
85
90
  });
86
91
  export declare function createOidcReactApi_dependencyInjection<DecodedIdToken extends Record<string, unknown>, ParamsOfCreateOidc extends {
87
92
  autoLogin?: boolean;
package/react/react.js CHANGED
@@ -262,23 +262,29 @@ function createOidcReactApi_dependencyInjection(paramsOrGetParams, createOidc) {
262
262
  ComponentWithLoginEnforced.displayName = "".concat((_b = (_a = Component.displayName) !== null && _a !== void 0 ? _a : Component.name) !== null && _b !== void 0 ? _b : "Component", "WithLoginEnforced");
263
263
  return ComponentWithLoginEnforced;
264
264
  }
265
- function enforceLogin() {
266
- return __awaiter(this, arguments, void 0, function (redirectUrl) {
267
- var oidc;
268
- if (redirectUrl === void 0) { redirectUrl = window.location.href; }
269
- return __generator(this, function (_a) {
270
- switch (_a.label) {
271
- case 0: return [4 /*yield*/, getOidc()];
265
+ function enforceLogin(loaderParams) {
266
+ return __awaiter(this, void 0, void 0, function () {
267
+ var cause, redirectUrl, oidc;
268
+ var _a, _b;
269
+ return __generator(this, function (_c) {
270
+ switch (_c.label) {
271
+ case 0:
272
+ cause = loaderParams.cause;
273
+ redirectUrl = (_b = (_a = loaderParams.request) === null || _a === void 0 ? void 0 : _a.url) !== null && _b !== void 0 ? _b : location.href;
274
+ return [4 /*yield*/, getOidc()];
272
275
  case 1:
273
- oidc = _a.sent();
276
+ oidc = _c.sent();
274
277
  if (!!oidc.isUserLoggedIn) return [3 /*break*/, 3];
278
+ if (cause === "preload") {
279
+ throw new Error("oidc-spa: User is not yet logged in. This is an expected error, nothing to be addressed.");
280
+ }
275
281
  return [4 /*yield*/, oidc.login({
276
282
  redirectUrl: redirectUrl,
277
283
  doesCurrentHrefRequiresAuth: location.href === redirectUrl
278
284
  })];
279
285
  case 2:
280
- _a.sent();
281
- _a.label = 3;
286
+ _c.sent();
287
+ _c.label = 3;
282
288
  case 3: return [2 /*return*/];
283
289
  }
284
290
  });
@@ -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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"}
@@ -8,7 +8,7 @@ import {
8
8
  type ReactNode,
9
9
  type ComponentType,
10
10
  type FC,
11
- JSX
11
+ type JSX
12
12
  } from "react";
13
13
  import { type Oidc, createOidc, type ParamsOfCreateOidc, OidcInitializationError } from "../core";
14
14
  import { assert, type Equals, type Param0 } from "../vendor/frontend/tsafe";
@@ -112,7 +112,10 @@ type OidcReactApi<DecodedIdToken extends Record<string, unknown>, AutoLogin exte
112
112
  onRedirecting: () => JSX.Element | null;
113
113
  }
114
114
  ) => FC<Props>;
115
- enforceLogin: (redirectUrl?: string) => Promise<void | never>;
115
+ enforceLogin: (loaderParams: {
116
+ request?: { url?: string };
117
+ cause?: "preload" | string;
118
+ }) => Promise<void | never>;
116
119
  });
117
120
 
118
121
  export function createOidcReactApi_dependencyInjection<
@@ -386,10 +389,22 @@ export function createOidcReactApi_dependencyInjection<
386
389
  return ComponentWithLoginEnforced;
387
390
  }
388
391
 
389
- async function enforceLogin(redirectUrl: string = window.location.href): Promise<void | never> {
392
+ async function enforceLogin(loaderParams: {
393
+ request?: { url?: string };
394
+ cause?: "preload" | string;
395
+ }): Promise<void | never> {
396
+ const { cause } = loaderParams;
397
+ const redirectUrl = loaderParams.request?.url ?? location.href;
398
+
390
399
  const oidc = await getOidc();
391
400
 
392
401
  if (!oidc.isUserLoggedIn) {
402
+ if (cause === "preload") {
403
+ throw new Error(
404
+ "oidc-spa: User is not yet logged in. This is an expected error, nothing to be addressed."
405
+ );
406
+ }
407
+
393
408
  await oidc.login({
394
409
  redirectUrl,
395
410
  doesCurrentHrefRequiresAuth: location.href === redirectUrl