@axa-fr/oidc-client 7.27.16 → 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 +35 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +245 -205
- package/dist/index.umd.cjs +2 -2
- package/dist/login.d.ts.map +1 -1
- package/dist/login.spec.d.ts +2 -0
- package/dist/login.spec.d.ts.map +1 -0
- package/dist/logout.d.ts +14 -0
- package/dist/logout.d.ts.map +1 -1
- package/dist/oidc.d.ts +20 -0
- package/dist/oidc.d.ts.map +1 -1
- package/dist/oidcClient.d.ts +20 -0
- package/dist/oidcClient.d.ts.map +1 -1
- package/dist/oidcStateError.d.ts +33 -0
- package/dist/oidcStateError.d.ts.map +1 -0
- package/dist/oidcStateError.spec.d.ts +2 -0
- package/dist/oidcStateError.spec.d.ts.map +1 -0
- package/dist/version.d.ts +1 -1
- package/package.json +2 -2
- package/src/index.ts +1 -0
- package/src/login.spec.ts +151 -0
- package/src/login.ts +23 -2
- package/src/logout.spec.ts +208 -1
- package/src/logout.ts +149 -80
- package/src/oidc.ts +30 -1
- package/src/oidcClient.ts +26 -0
- package/src/oidcStateError.spec.ts +33 -0
- package/src/oidcStateError.ts +50 -0
- package/src/renewTokens.ts +13 -0
- package/src/version.ts +1 -1
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';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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"}
|