dart_jsonwebtoken
An easy to use JSON Web Token (JWT) implementation in Dart with all algorithms supported.
3.4.1
1.3M downloads/mo
#294 most downloaded on pub.dev
jonasroussel/dart_jsonwebtoken
What this package is like to depend on
Last release 4 months ago
19 Apr 2026
Release timing varies
gaps range from 2 weeks to 7 months
Nearly every release is documented
notes for 63 of 64 stable releases
1 version withdrawn
withdrawn after publishing
6 years old
67 releases · first in 2020
5 releases in the last 12 months
see the full history below
Release timeline
67 releases · May 2020 to Apr 2026
2021
2022
2023
2024
2025
2026
Releases
latest 60 of 67-
3.4.119 Apr 2026Release notes
Open source →- Fix
audlist verification crashing on JSON-decoded tokens (List<dynamic>toList<String>cast) - Add defensive type guards on
exp,nbfandiatclaims (throwJWTInvalidExceptioninstead of runtime error) - Adopt
package:lints/recommendedwith strict-casts/inference - Internal lint cleanups (
super.message, string interpolation, remove deprecatedlibrarydirective)
Release notes
Open source →- Fix
audlist verification crashing on JSON-decoded tokens (List<dynamic>toList<String>cast) - Add defensive type guards on
exp,nbfandiatclaims (throwJWTInvalidExceptioninstead of runtime error) - Adopt
package:lints/recommendedwith strict-casts/inference - Internal lint cleanups (
super.message, string interpolation, remove deprecatedlibrarydirective)
- Fix
-
3.4.022 Mar 2026Release notes
Open source →- Replace ed25519_edwards with vendored Ed25519 implementation (enable dart2wasm compilation)
- RSA PKCS1-v1_5 sign/verify (enable RSA algorithm for node.js)
Release notes
Open source →- Replace ed25519_edwards with vendored Ed25519 implementation (enable dart2wasm compilation)
- RSA PKCS1-v1_5 sign/verify (enable RSA algorithm for node.js)
-
3.3.226 Feb 2026Release notes
Open source →- Use constant-time comparison for HMAC signature verification (timing-attack resistant)
- Handle non-Map payload in
JWT.decode(audience, issuer, subject, jwtId) - Allow
audclaim as genericListin_parseAud - Fix
ECPrivateKey.bytes, derive EC private key size from parameters
Release notes
Open source →- Use constant-time comparison for HMAC signature verification (timing-attack resistant)
- Handle non-Map payload in
JWT.decode(audience, issuer, subject, jwtId) - Allow
audclaim as genericListin_parseAud - Fix
ECPrivateKey.bytes, derive EC private key size from parameters
-
3.3.116 Oct 2025Release notes
Open source → -
3.3.010 Oct 2025 withdrawnRelease notes
Open source →- RETRACTED
- Increase
JWT.payloadstrictness (https://github.com/jonasroussel/dart_jsonwebtoken/issues/67)
-
3.2.012 Mar 2025Release notes
Open source →- Update upper bound of pointycastle (#65)
- Dart SDK minimum version set to 3.0.0
- Use
pointycastlefor HMAC calculation instead ofcrypto - Implement custom deep list equality instead of using the
collectionpackage
Release notes
Open source →- Update upper bound of pointycastle (https://github.com/jonasroussel/dart_jsonwebtoken/pull/65)
- Dart SDK minimum version set to 3.0.0
- Use
pointycastlefor HMAC calculation instead ofcrypto - Implement custom deep list equality instead of using the
collectionpackage
-
3.1.128 Feb 2025Release notes
Open source →- Rollback
collectionto 1.17.1 to be compatible with older flutter versions
Release notes
Open source →- Rollback
collectionto 1.17.1 to be compatible with older flutter versions
- Rollback
-
3.1.027 Feb 2025Release notes
Open source →- Fix unconsistant JWK convertion
- Add
JWTKey.fromJWKstatic method for parsing JWK to various key types
Release notes
Open source →- Fix unconsistant JWK convertion
- Add
JWTKey.fromJWKstatic method for parsing JWK to various key types
-
3.0.027 Feb 2025Release notes
Open source →- Possible BREAKING CHANGE:
exp,nbfandiatare now following the JWT RFC for NumericDate by only using UTC DateTime - Add JWK (JSON Web Key) conversion methods to key classes (
toJWK()) - Fix HMAC secret auto detect if base64 is url or not
- Fix base64Url instead of base64 for string payloads JWT
- Add header tests for
exp,nbfandiat
Release notes
Open source →- Possible BREAKING CHANGE:
exp,nbfandiatare now following the JWT RFC for NumericDate by only using UTC DateTime - Add JWK (JSON Web Key) conversion methods to key classes (
toJWK()) - Fix HMAC secret auto detect if base64 is url or not
- Fix base64Url instead of base64 for string payloads JWT
- Add header tests for
exp,nbfandiat
- Possible BREAKING CHANGE:
-
2.17.003 Feb 2025Release notes
Open source →- Parse standard parameters when using
JWT.decode(https://github.com/jonasroussel/dart_jsonwebtoken/pull/64)
- Parse standard parameters when using
-
2.16.022 Jan 2025Release notes
Open source →- Add support of PEM parsing for EdDSA keys with
EdDSAPrivateKey.fromPemandEdDSAPublicKey.fromPem
- Add support of PEM parsing for EdDSA keys with
-
2.15.020 Jan 2025Release notes
Open source →- Added support for PSS alogrithm varations (https://github.com/jonasroussel/dart_jsonwebtoken/pull/59)
-
2.14.201 Dec 2024Release notes
Open source →- Ensure
sub,iss,jtiare strings (https://github.com/jonasroussel/dart_jsonwebtoken/pull/62)
- Ensure
-
2.14.101 Oct 2024Release notes
Open source →- Fix
iatclaim verification (https://github.com/jonasroussel/dart_jsonwebtoken/pull/57)
- Fix
-
2.14.025 Apr 2024Release notes
Open source →- Add support for base64 encoded secrets (https://github.com/jonasroussel/dart_jsonwebtoken/pull/54)
- Fix
exp,nbfandiatchecks by casting the value toint
-
2.13.011 Feb 2024Release notes
Open source →- Fix invalid ECDSA signature for keys that are not a multiple of 8 (e.g. secp521r1) (https://github.com/jonasroussel/dart_jsonwebtoken/issues/51)
-
2.12.229 Dec 2023Release notes
Open source →- Add testable date times (https://github.com/jonasroussel/dart_jsonwebtoken/issues/50)
-
2.12.105 Nov 2023Release notes
Open source →- Fixing issue with custom headers (https://github.com/jonasroussel/dart_jsonwebtoken/issues/48)
-
2.12.030 Sep 2023Release notes
Open source →- NEW: tests have been added
- NEW: publish & test CI
- Making all
JWTAlgorithmclasses public (mainly to be mocked in tests)
-
2.11.026 Aug 2023Release notes
Open source →- Removing
basic_utilspackage that was incompatible with flutter web - Moving utils to
helpers.dartand key parsing functions intokey_parser.dart - Adding some new examples in
example/example.dart
- Removing
-
2.10.023 Aug 2023Release notes
Open source →- New ECDSA algorithm (ES256K)
- New RSA algorithm with PSS padding (PS256, PS384, PS512)
- README.md improved
- example/example.dart improved
-
2.9.121 Aug 2023 -
2.9.021 Aug 2023Release notes
Open source →- Adding
basic_utilspackage to handle PEM & key parsing - A lot of new class factory to create
Keys(e.g.RSAPublicKey.certand.bytes)
- Adding
-
2.8.216 Jun 2023 -
2.8.127 May 2023 -
2.8.027 May 2023Release notes
Open source →- BREAKING CHANGE: Replacing all JWTError by JWTException that is more accurate (https://github.com/jonasroussel/dart_jsonwebtoken/issues/39)
- Fixing assert message (https://github.com/jonasroussel/dart_jsonwebtoken/pull/42)
-
2.7.129 Jan 2023 -
2.7.029 Jan 2023Release notes
Open source →parsing.darthas been replaced by more accurate CryptoUtils functionshttps://github.com/Ephenodrom/Dart-Basic-Utils- Fixing
_ECDSAAlgorithm.signmethod that did not filling the gap in the ECDSA curve signatures
-
2.6.424 Jan 2023 -
2.6.322 Jan 2023Release notes
Open source →- Adding a
.rawand.cloneconstructor toJWTKey(execptSecretKeyof course)
- Adding a
-
2.6.211 Dec 2022Release notes
Open source →- Fix rethrow of JWTError exceptions for the method
verify. Before this change every exception thrown byverifyalways returned JWTUndefinedError
- Fix rethrow of JWTError exceptions for the method
-
2.6.111 Dec 2022Release notes
Open source →- Adding a
tryversion ofdecode,verifyandsign, that simply returnsnullinstead of throwing errors
- Adding a
-
2.6.003 Dec 2022Release notes
Open source →- Adding a
JWT.decodemethod to simply decode a token without checking its signature - The
JWT.verifymethod do not remove extra token infos (iss,aud, ...) anymore
- Adding a
-
2.5.129 Nov 2022Release notes
Open source →- Fix Flutter compatibility issue:
downgradedependency collection to1.16.0
- Fix Flutter compatibility issue:
-
2.5.030 Oct 2022Release notes
Open source →- https://github.com/jonasroussel/dart_jsonwebtoken/commit/12348776259ccec70ccf62856ec0245f49ebe951
-
2.4.228 Jul 2022 -
2.4.103 Feb 2022 -
2.4.024 Oct 2021Release notes
Open source →- BREAKING CHANGE:
JWT.audienceis now an instance of theAudienceclass, to handle multiple audience entries and can be used like list. You can always use a single entry by callingAudience.one('...')factory and the.firstgetter - Upgrading
pointycastledependency to3.3.4
- BREAKING CHANGE:
-
2.3.218 Jul 2021Release notes
Open source →- Some badges on
README.md(Thanks to https://github.com/bruno-garcia/badges.bar)
- Some badges on
-
2.3.116 Jul 2021Release notes
Open source →- Fix the
pointycastledependency,v3.1.3is incompatible with flutter web (dart2js) (https://github.com/jonasroussel/dart_jsonwebtoken/issues/14)
- Fix the
-
2.3.014 Jun 2021 -
2.2.027 May 2021Release notes
Open source →- Fixing EdDSA incompatibility's with flutter web (https://github.com/jonasroussel/dart_jsonwebtoken/issues/11)
- Dependencies:
ed25519_edwardshave been removed,convert&collectionhave been added
-
2.1.121 May 2021 -
2.1.013 Apr 2021Release notes
Open source →- When an undefined error occur
JWTUndefinedErroris thrown containing the original error inerrorproperty (https://github.com/jonasroussel/dart_jsonwebtoken/issues/9) - BREAKING CHANGE:
jwt.verifyno longer supportthrowUndefinedErrorsparameter
- When an undefined error occur
-
2.0.126 Mar 2021Release notes
Open source →- Fixing
JWT.signto includeiat& other attributes when payload is an empty Map
- Fixing
-
2.0.024 Mar 2021 -
2.0.0-nullsafety.216 Mar 2021 pre-releaseRelease notes
Open source →- New EdDSA Algorithm (EdDSA)
- EdDSAPrivateKey and EdDSAPublicKey, two new keys for EdDSA algorithm
ed25519_edwardspackage has been added
-
2.0.0-nullsafety.103 Mar 2021 pre-release -
1.6.211 Feb 2021 -
1.6.111 Feb 2021 -
1.6.010 Feb 2021Release notes
Open source →- New ECDSA Algorithm (ES256, ES384, ES512)
- ECPrivateKey and ECPublicKey, two new keys for ECDSA algorithm
- PrivateKey is renamed in RSAPrivateKey
- PublicKey is renamed in RSAPublicKey
- Optimization of private & public keys parsing
rsa_pkcs&cryptographyhave been removed
-
1.5.105 Jan 2021Nothing published for this version
-
1.5.027 Dec 2020Release notes
Open source →- Debuging
_TypeError issue on sign method(#4) - Implementing
toStringin theJWTErrorclass
- Debuging
-
1.4.119 Nov 2020 -
1.4.019 Nov 2020 -
1.3.113 Nov 2020 -
1.3.004 Nov 2020 -
1.2.102 Nov 2020 -
1.2.002 Nov 2020Release notes
Open source →- Payload is now required
- Payload is now dynamic and not restricted to an object
- Dependencies updated
-
1.1.028 Aug 2020