This release introduces important improvements, consistency fixes, a move to .NET 9, and a few breaking changes to the library.
The focus is on validation semantics, decoding accuracy, and developer usability.
✨ New Features
- Case-insensitive claim and header handling.
- Improved
GetTokenSummary: safer, more readable JSON output. DecodePayloadAs<T>andDecodePayloadAsJsonnow deserialize the raw payload instead of hydrated claims.GetSigningAlgorithmreturns an empty string ("") if the header is missing.ValidateNotBefore(string token, TimeSpan? clockSkew = null)now supports optional clock skew.- Target framework updated to .NET 9.
⚠️ Breaking Changes
ValidateNotBefore: signature updated with optionalclockSkewparameter.GetCustomClaim: now returnsobject?instead ofobject.ValidateLifetime: validates only temporal claims (exp,nbf), ignoring issuer, audience, and signature.ValidateIssuerAndAudience: compares claims directly, without signature validation.GetJwtId,GetAudience,GetIssuer: return""(empty string) when missing instead ofnull.- Dropped support for older target frameworks; requires .NET 9.