Why JWT is not a one-size-fits-all solution.
- Benedikt Bauer
Beyonder
© like_the_grand_canyon
on Flickr (CC-BY-NC)
A Base64URL-encoded string with three parts: header, payload, and signature
Encryption (JWE) is possible, but signed tokens (JWS) are the standard
Marketed as stateless — but revocation always adds state
Benedikt Bauer, Beyonder - @mastacheata – DjangoCon Europe 2026
Benedikt Bauer, Beyonder - @mastacheata – DjangoCon Europe 2026
JWTs are immutable – data remains "valid" until expiration, even after the data changes server-side
Stateless revocation is impossible – locking users out requires a blocklist, adding back the complexity you wanted to avoid
Implementing "Log out from all devices" requires tracking state, defeating the purpose
Benedikt Bauer, Beyonder - @mastacheata – DjangoCon Europe 2026
Benedikt Bauer
Beyonder GmbH
Benedikt Bauer, Beyonder - @mastacheata – DjangoCon Europe 2026