PackageTrack
Sign in Get early access

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
Release Pre-release Withdrawn

Releases

latest 60 of 67
  1. 3.4.1 19 Apr 2026
    Release notes
    • Fix aud list verification crashing on JSON-decoded tokens (List<dynamic> to List<String> cast)
    • Add defensive type guards on exp, nbf and iat claims (throw JWTInvalidException instead of runtime error)
    • Adopt package:lints/recommended with strict-casts/inference
    • Internal lint cleanups (super.message, string interpolation, remove deprecated library directive)
    Open source →
    Release notes
    • Fix aud list verification crashing on JSON-decoded tokens (List<dynamic> to List<String> cast)
    • Add defensive type guards on exp, nbf and iat claims (throw JWTInvalidException instead of runtime error)
    • Adopt package:lints/recommended with strict-casts/inference
    • Internal lint cleanups (super.message, string interpolation, remove deprecated library directive)
    Open source →
  2. 3.4.0 22 Mar 2026
    Release notes
    • Replace ed25519_edwards with vendored Ed25519 implementation (enable dart2wasm compilation)
    • RSA PKCS1-v1_5 sign/verify (enable RSA algorithm for node.js)
    Open source →
    Release notes
    • Replace ed25519_edwards with vendored Ed25519 implementation (enable dart2wasm compilation)
    • RSA PKCS1-v1_5 sign/verify (enable RSA algorithm for node.js)
    Open source →
  3. 3.3.2 26 Feb 2026
    Release notes
    • Use constant-time comparison for HMAC signature verification (timing-attack resistant)
    • Handle non-Map payload in JWT.decode (audience, issuer, subject, jwtId)
    • Allow aud claim as generic List in _parseAud
    • Fix ECPrivateKey.bytes, derive EC private key size from parameters
    Open source →
    Release notes
    • Use constant-time comparison for HMAC signature verification (timing-attack resistant)
    • Handle non-Map payload in JWT.decode (audience, issuer, subject, jwtId)
    • Allow aud claim as generic List in _parseAud
    • Fix ECPrivateKey.bytes, derive EC private key size from parameters
    Open source →
  4. 3.3.1 16 Oct 2025
    Release notes

    3.3.1

    • Rollback to a dynamic JWT.payload

    3.3.0

    • RETRACTED
    • Increase JWT.payload strictness (#67)
    Open source →
    Release notes
    • Rollback to a dynamic JWT.payload
    Open source →
  5. 3.3.0 10 Oct 2025 withdrawn
    Release notes
    • RETRACTED
    • Increase JWT.payload strictness (https://github.com/jonasroussel/dart_jsonwebtoken/issues/67)
    Open source →
  6. 3.2.0 12 Mar 2025
    Release notes
    • Update upper bound of pointycastle (#65)
    • Dart SDK minimum version set to 3.0.0
    • Use pointycastle for HMAC calculation instead of crypto
    • Implement custom deep list equality instead of using the collection package
    Open source →
    Release notes
    • Update upper bound of pointycastle (https://github.com/jonasroussel/dart_jsonwebtoken/pull/65)
    • Dart SDK minimum version set to 3.0.0
    • Use pointycastle for HMAC calculation instead of crypto
    • Implement custom deep list equality instead of using the collection package
    Open source →
  7. 3.1.1 28 Feb 2025
    Release notes
    • Rollback collection to 1.17.1 to be compatible with older flutter versions
    Open source →
    Release notes
    • Rollback collection to 1.17.1 to be compatible with older flutter versions
    Open source →
  8. 3.1.0 27 Feb 2025
    Release notes
    • Fix unconsistant JWK convertion
    • Add JWTKey.fromJWK static method for parsing JWK to various key types
    Open source →
    Release notes
    • Fix unconsistant JWK convertion
    • Add JWTKey.fromJWK static method for parsing JWK to various key types
    Open source →
  9. 3.0.0 27 Feb 2025
    Release notes
    • Possible BREAKING CHANGE: exp, nbf and iat are 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, nbf and iat
    Open source →
    Release notes
    • Possible BREAKING CHANGE: exp, nbf and iat are 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, nbf and iat
    Open source →
  10. 2.17.0 03 Feb 2025
    Release notes
    • Parse standard parameters when using JWT.decode (#64)
    Open source →
    Release notes
    • Parse standard parameters when using JWT.decode (https://github.com/jonasroussel/dart_jsonwebtoken/pull/64)
    Open source →
  11. 2.16.0 22 Jan 2025
    Release notes
    • Add support of PEM parsing for EdDSA keys with EdDSAPrivateKey.fromPem and EdDSAPublicKey.fromPem
    Open source →
  12. 2.15.0 20 Jan 2025
    Release notes
    • Added support for PSS alogrithm varations (https://github.com/jonasroussel/dart_jsonwebtoken/pull/59)
    Open source →
  13. 2.14.2 01 Dec 2024
    Release notes
    • Ensure sub, iss, jti are strings (https://github.com/jonasroussel/dart_jsonwebtoken/pull/62)
    Open source →
  14. 2.14.1 01 Oct 2024
    Release notes
    • Fix iat claim verification (https://github.com/jonasroussel/dart_jsonwebtoken/pull/57)
    Open source →
  15. 2.14.0 25 Apr 2024
    Release notes
    • Add support for base64 encoded secrets (https://github.com/jonasroussel/dart_jsonwebtoken/pull/54)
    • Fix exp, nbf and iat checks by casting the value to int
    Open source →
  16. 2.13.0 11 Feb 2024
    Release notes
    • Fix invalid ECDSA signature for keys that are not a multiple of 8 (e.g. secp521r1) (https://github.com/jonasroussel/dart_jsonwebtoken/issues/51)
    Open source →
  17. 2.12.2 29 Dec 2023
    Release notes
    • Add testable date times (https://github.com/jonasroussel/dart_jsonwebtoken/issues/50)
    Open source →
  18. 2.12.1 05 Nov 2023
    Release notes
    • Fixing issue with custom headers (https://github.com/jonasroussel/dart_jsonwebtoken/issues/48)
    Open source →
  19. 2.12.0 30 Sep 2023
    Release notes
    • NEW: tests have been added
    • NEW: publish & test CI
    • Making all JWTAlgorithm classes public (mainly to be mocked in tests)
    Open source →
  20. 2.11.0 26 Aug 2023
    Release notes
    • Removing basic_utils package that was incompatible with flutter web
    • Moving utils to helpers.dart and key parsing functions into key_parser.dart
    • Adding some new examples in example/example.dart
    Open source →
  21. 2.10.0 23 Aug 2023
    Release notes
    • New ECDSA algorithm (ES256K)
    • New RSA algorithm with PSS padding (PS256, PS384, PS512)
    • README.md improved
    • example/example.dart improved
    Open source →
  22. 2.9.1 21 Aug 2023
    Release notes
    • Adding a new class factory ECPublicKey.cert
    Open source →
  23. 2.9.0 21 Aug 2023
    Release notes
    • Adding basic_utils package to handle PEM & key parsing
    • A lot of new class factory to create Keys (e.g. RSAPublicKey.cert and .bytes)
    Open source →
  24. 2.8.2 16 Jun 2023
    Release notes
    • Downgraing collection to 1.7.1 to be compatible with flutter_test
    Open source →
  25. 2.8.1 27 May 2023
    Release notes
    • Updating dependencies
    • Fixing CHANGELOG.md
    Open source →
  26. 2.8.0 27 May 2023
    Release notes
    • 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)
    Open source →
  27. 2.7.1 29 Jan 2023
    Release notes
    • Migrating from pedantic to lints
    Open source →
  28. 2.7.0 29 Jan 2023
    Release notes
    • parsing.dart has been replaced by more accurate CryptoUtils functions https://github.com/Ephenodrom/Dart-Basic-Utils
    • Fixing _ECDSAAlgorithm.sign method that did not filling the gap in the ECDSA curve signatures
    Open source →
  29. 2.6.4 24 Jan 2023
    Release notes
    • Fixing ECPrivateKey.raw initialize size
    Open source →
  30. 2.6.3 22 Jan 2023
    Release notes
    • Adding a .raw and .clone constructor to JWTKey (execpt SecretKey of course)
    Open source →
  31. 2.6.2 11 Dec 2022
    Release notes
    • Fix rethrow of JWTError exceptions for the method verify. Before this change every exception thrown by verify always returned JWTUndefinedError
    Open source →
  32. 2.6.1 11 Dec 2022
    Release notes
    • Adding a try version of decode, verify and sign, that simply returns null instead of throwing errors
    Open source →
  33. 2.6.0 03 Dec 2022
    Release notes
    • Adding a JWT.decode method to simply decode a token without checking its signature
    • The JWT.verify method do not remove extra token infos (iss, aud, ...) anymore
    Open source →
  34. 2.5.1 29 Nov 2022
    Release notes
    • Fix Flutter compatibility issue: downgrade dependency collection to 1.16.0
    Open source →
  35. 2.5.0 30 Oct 2022
    Release notes
    • https://github.com/jonasroussel/dart_jsonwebtoken/commit/12348776259ccec70ccf62856ec0245f49ebe951
    Open source →
  36. 2.4.2 28 Jul 2022
    Release notes
    • Formating for 'static analysis'
    Open source →
  37. 2.4.1 03 Feb 2022
    Release notes
    • Fix : https://github.com/jonasroussel/dart_jsonwebtoken/issues/19
    Open source →
  38. 2.4.0 24 Oct 2021
    Release notes
    • BREAKING CHANGE: JWT.audience is now an instance of the Audience class, to handle multiple audience entries and can be used like list. You can always use a single entry by calling Audience.one('...') factory and the .first getter
    • Upgrading pointycastle dependency to 3.3.4
    Open source →
  39. 2.3.2 18 Jul 2021
    Release notes
    • Some badges on README.md (Thanks to https://github.com/bruno-garcia/badges.bar)
    Open source →
  40. 2.3.1 16 Jul 2021
    Release notes
    • Fix the pointycastle dependency, v3.1.3 is incompatible with flutter web (dart2js) (https://github.com/jonasroussel/dart_jsonwebtoken/issues/14)
    Open source →
  41. 2.3.0 14 Jun 2021
    Release notes
    • Adding header in JWT class (you can now set your custom header)
    Open source →
  42. 2.2.0 27 May 2021
    Release notes
    • Fixing EdDSA incompatibility's with flutter web (https://github.com/jonasroussel/dart_jsonwebtoken/issues/11)
    • Dependencies: ed25519_edwards have been removed, convert & collection have been added
    Open source →
  43. 2.1.1 21 May 2021
    Release notes
    • Fixing _pkcs8ECPublicKey to work with pointycastle 3.0.1
    Open source →
  44. 2.1.0 13 Apr 2021
    Release notes
    • When an undefined error occur JWTUndefinedError is thrown containing the original error in error property (https://github.com/jonasroussel/dart_jsonwebtoken/issues/9)
    • BREAKING CHANGE: jwt.verify no longer support throwUndefinedErrors parameter
    Open source →
  45. 2.0.1 26 Mar 2021
    Release notes
    • Fixing JWT.sign to include iat & other attributes when payload is an empty Map
    Open source →
  46. 2.0.0 24 Mar 2021
    Release notes
    • Stable release for null safety
    Open source →
  47. 2.0.0-nullsafety.2 16 Mar 2021 pre-release
    Release notes
    • New EdDSA Algorithm (EdDSA)
    • EdDSAPrivateKey and EdDSAPublicKey, two new keys for EdDSA algorithm
    • ed25519_edwards package has been added
    Open source →
  48. 2.0.0-nullsafety.1 03 Mar 2021 pre-release
    Release notes
    • Null safety migration of this package
    Open source →
  49. 1.6.2 11 Feb 2021
    Release notes
    • Adding analysis_options.yaml to work with pedantic during development
    Open source →
  50. 1.6.1 11 Feb 2021
    Release notes
    • Formating for 'static analysis'
    Open source →
  51. 1.6.0 10 Feb 2021
    Release notes
    • 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 & cryptography have been removed
    Open source →
  52. 1.5.1 05 Jan 2021

    Nothing published for this version

  53. 1.5.0 27 Dec 2020
    Release notes
    • Debuging _TypeError issue on sign method (#4)
    • Implementing toString in the JWTError class
    Open source →
  54. 1.4.1 19 Nov 2020
    Release notes
    • Formating for 'static analysis'
    Open source →
  55. 1.4.0 19 Nov 2020
    Release notes
    • Implementing throwUndefinedErrors option in the JWT.verify method
    Open source →
  56. 1.3.1 13 Nov 2020
    Release notes
    • Formating for 'static analysis'
    Open source →
  57. 1.3.0 04 Nov 2020
    Release notes
    • Adding checks in JWT.verify function for iss, sub, aud, iat, jti
    Open source →
  58. 1.2.1 02 Nov 2020
    Release notes
    • Formating for 'static analysis'
    Open source →
  59. 1.2.0 02 Nov 2020
    Release notes
    • Payload is now required
    • Payload is now dynamic and not restricted to an object
    • Dependencies updated
    Open source →
  60. 1.1.0 28 Aug 2020
    Release notes
    • New algorithms
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive