oidc_web_core 1.0.0
oidc_web_core: ^1.0.0 copied to clipboard
dart web package for oidc protocol
1.0.0 #
Note: This release has breaking changes.
- FIX(oidc_web_core): stop the samePage end-session test from navigating the suite away (#382). (d1cd114e)
- FIX: resolve all four library bugs; drive honest unit coverage to ~95% (#368). (c86bee17)
- FIX(oidc_web_core): secureTokens silently persisted as plaintext on Firefox (#360). (656025d8)
- FIX(oidc_core): close 7 P0 spec-audit findings (#324). (60907e96)
- FIX(oidc_web_core): avoid COOP closed-window false positives. (5b24209b)
- FIX(oidc_web_core): detect closed auth window (#303). (36f7a340)
- FEAT(oidc_web_core): encrypt secureTokens at rest (AES-GCM via WebCrypto) (#324 item 15). (cf504300)
- BREAKING REFACTOR: remove rxdart; adopt bdaya_shared_value ^5.0.0. (0d65d7fd)
0.5.0 #
- FEAT: encrypt the
secureTokensnamespace (access/refresh/id tokens, the OIDC nonce) at rest inOidcWebStore. AES-GCM via WebCrypto, with a non-extractable 256-bit key persisted (as a structured-cloneCryptoKeyobject, never its raw bytes) in IndexedDB and a fresh random IV per write. Values are stored as a versionedoidcenc.v1.<iv>.<ciphertext>envelope. This is defense-in-depth against disk/backup scraping and casual inspection -- it is NOT protection against XSS: same-origin script can still callcrypto.subtle.decryptor simply read decrypted tokens back out through theOidcStoreAPI. Harden against XSS itself (CSP, trusted types, dependency hygiene) and prefer a BFF for high-value applications. (audit #324 item 15)- No new required settings:
const OidcWebStore()still works, and encryption is on by default (OidcWebStoreEncryption.preferred). - Values written before this feature (or written by the
preferredfallback) are read through transparently and re-encrypted on next write -- no forced re-login. This migration is forward-only: downgrading to a version predating this feature will see encrypted values as opaque strings. - If WebCrypto/IndexedDB are unavailable (a non-secure-context origin, or
IndexedDB disabled/ephemeral in some private-browsing modes), the
default
preferredmode falls back to the previous plaintext behavior with a one-shot warning; passencryption: OidcWebStoreEncryption.requiredto throw anOidcExceptioninstead of ever writing plaintext. - No new dependencies: WebCrypto and IndexedDB are both already exposed by
package:web.
- No new required settings:
0.4.0+2 #
- Update a dependency to the latest release.
0.3.1+2 #
- Update a dependency to the latest release.
0.3.1+1 #
- Update a dependency to the latest release.
0.3.0+5 #
- Update a dependency to the latest release.
0.3.0+3 #
- Update a dependency to the latest release.
0.3.0+2 #
- Update a dependency to the latest release.
0.3.0+1 #
- Update a dependency to the latest release.
0.3.0 #
0.2.0 #
0.1.0+1 #
- feat: initial release