Appearance
Changelog
This page tracks user-visible changes to the packages in this repository. Package release details live in packages/zero-auth/CHANGELOG.md. The repository CHANGELOG.md tracks repository-level changes.
1.6.0 — 2026-09-28
Added
- Asymmetric Key Cryptography:
- Support for asymmetric algorithms:
RS256,RS384,RS512,PS256,PS384,PS512,ES256,ES384,ES512, andEdDSA(Ed25519) via PKCS#8 / SPKI PEM strings orCryptoKey. - Configurable
keyIdto emit thekidheader claim in signed JWTs. - Dedicated Verifier-Only mode allowing downstream microservices and gateways to verify tokens using only the public key with zero signing capability.
- Support for asymmetric algorithms:
- Remote JWKS Verification & Publisher:
- Dynamic verification against remote JWKS endpoints (
jwksUri: string | URL), compatible with central auth servers and third-party Identity Providers (Clerk, Auth0, Firebase, Google, AWS Cognito). - Built-in in-memory caching (
cacheMaxAge), rate-limited cooldown (cooldownDuration), and request timeout options (timeoutDuration) viajwks: RemoteJwksConfig. - Zero-downtime key rotation: automated refetching when encountering an unobserved Key ID (
kid). - JWKS publisher route handler:
auth.jwksHandler()serves public keys at/.well-known/jwks.jsonwith automatedContent-TypeandCache-Controlheaders. - Programmatic JWKS export:
auth.getJwks()with memoized JWK caching. - Standalone utility functions:
createJwksResolver()andexportPublicKeyToJwk().
- Dynamic verification against remote JWKS endpoints (
- New Microservices Architecture Example:
- Added runnable example
examples/express-jwks-microservicesdemonstrating central RS256 token issuance and JWKS publishing alongside a downstream verifier-only microservice.
- Added runnable example
- Documentation:
- Added dedicated guide
docs/guides/asymmetric-and-jwks.md. - Added runnable example guide
docs/examples/jwks-microservices.md. - Updated configuration reference and VitePress navigation.
- Added dedicated guide
1.5.0 — 2026-09-15
Added
- Add
refreshOptions.resolveUserto reload current claims or reject an account before issuing refreshed tokens.
1.4.1 — 2026-09-05
Security
- Prevent Redis refresh-token family registrations from winning a race with family revocation.
- Add concurrent Redis rotation coverage to the deployable example.
- Stop the REST example test from printing complete JWT values.
1.4.0 — 2026-09-05
Added
- Add the optional-dependency-free
createRedisRevocationStore()helper for ioredis-compatible clients and atomic refresh-token rotation.
1.3.0 — 2026-09-03
Added
- Add optional JWT issuer, audience, clock-tolerance, and
nbfvalidation. - Add the public
RefreshTokenStorecontract for automatic rotation wiring.
Documentation
- Expand documentation for authentication flows, CSRF, permissions, refresh-token rotation, deployment, testing, clients, and releases.
- Add CI documentation-build validation.
- Add this dedicated documentation changelog page.
- Surface the new JWT policy, refresh-store integration, and legacy fallback guidance in the README and documentation site.
1.2.0 — 2026-08-29
- Add signed double-submit CSRF protection for cookie-authenticated requests.
- Add
auth.csrf()middleware andauth.csrfToken(res)token setup. - Add
auth.authorizePermissions()middleware for fine-grained access checks. - Add the
AUTH_CSRF_INVALIDerror code and document the browser/cURL flow.
1.1.3 — 2026-08-25
- Add a prominent README section for breaking changes and upgrade notes.
- Document the refresh-rotation compatibility warning at the start of the README.
1.1.2 — 2026-08-24
- Add atomic refresh-token consumption for concurrency-safe rotation.
- Keep the legacy
isRevokedandrevokeRefreshTokenhooks as a warned fallback. - Reject incomplete rotation stores instead of silently accepting unsafe configuration.
- Add concurrency, legacy fallback, and production-warning coverage.
- Harden and document the deployable Express + Redis cookie-auth example.