@axa-fr/oidc-client 7.27.17 → 7.27.18

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
@@ -446,6 +446,41 @@ pnpm start
446
446
 
447
447
  ```
448
448
 
449
+ ## Handling missing or corrupted login state
450
+
451
+ When the OIDC state or nonce is missing from storage at callback time (for
452
+ example because the user is in a private browsing tab, cleared storage
453
+ manually, or because the browser evicted the entry between the authorize
454
+ redirect and the callback), the library now throws a typed
455
+ `OidcStateError` instead of letting a generic `TypeError` escape.
456
+
457
+ ```ts
458
+ import { isOidcStateError, OidcStateError, OidcStateErrorCode } from '@axa-fr/oidc-client';
459
+
460
+ try {
461
+ await oidcClient.loginCallbackAsync();
462
+ } catch (error) {
463
+ if (isOidcStateError(error)) {
464
+ switch (error.code) {
465
+ case OidcStateErrorCode.STATE_MISSING:
466
+ // The stored state was not found at callback time.
467
+ break;
468
+ case OidcStateErrorCode.STATE_MISMATCH:
469
+ // The state returned by the server does not match the stored one.
470
+ break;
471
+ case OidcStateErrorCode.NONCE_MISSING:
472
+ // The stored nonce was not found at callback time.
473
+ break;
474
+ }
475
+ }
476
+ }
477
+ ```
478
+
479
+ `OidcStateError` is an `Error` subclass, exposes a stable `code` field, and
480
+ is also re-exported from `@axa-fr/react-oidc`. For silent renewal, a missing
481
+ nonce no longer throws a `TypeError` — it is reported through the existing
482
+ `SESSION_LOST` status so consumers can recover via the normal re-login flow.
483
+
449
484
  ## Service worker protocol
450
485
 
451
486
  The `postMessage` protocol used between `OidcClient` and the service worker
package/dist/index.d.ts CHANGED
@@ -5,6 +5,7 @@ export { OidcLocation } from './location.js';
5
5
  export { getFetchDefault } from './oidc.js';
6
6
  export type { OidcUserInfo } from './oidcClient.js';
7
7
  export { OidcClient } from './oidcClient.js';
8
+ export { isOidcStateError, OidcStateError, OidcStateErrorCode } from './oidcStateError.js';
8
9
  export type { Tokens } from './parseTokens.js';
9
10
  export { TokenRenewMode } from './parseTokens.js';
10
11
  export type { ServiceWorkerMessage, ServiceWorkerMessageTypeKey, ServiceWorkerMessageTypeValue, ServiceWorkerResponse, } from './protocol.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC9F,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EACV,oBAAoB,EACpB,2BAA2B,EAC3B,6BAA6B,EAC7B,qBAAqB,GACtB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,EAC5B,eAAe,EACf,6BAA6B,EAC7B,0BAA0B,EAC1B,gBAAgB,EAChB,wBAAwB,EACxB,kBAAkB,EAClB,qCAAqC,EACrC,kBAAkB,GACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,+BAA+B,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACzE,YAAY,EAAE,sBAAsB,EAAE,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC9F,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC9F,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC3F,YAAY,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EACV,oBAAoB,EACpB,2BAA2B,EAC3B,6BAA6B,EAC7B,qBAAqB,GACtB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,EAC5B,eAAe,EACf,6BAA6B,EAC7B,0BAA0B,EAC1B,gBAAgB,EAChB,wBAAwB,EACxB,kBAAkB,EAClB,qCAAqC,EACrC,kBAAkB,GACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,+BAA+B,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACzE,YAAY,EAAE,sBAAsB,EAAE,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC9F,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC"}