JWT-intrekking
Hoe je een JWT „uitlogt” vóór het verloopt. Een lastig technisch probleem: JWT's zijn per ontwerp stateless, dus de server kan een token pas terugnemen als er toch state wordt toegevoegd.
Praktische aanpakken: (1) korte levensduur voor het access-token (5–15 minuten) plus een refresh-token dat in de database kan worden ingetrokken; (2) een JWT-denylist in Redis, bij elk verzoek gecontroleerd, wat het stateless-idee doorbreekt; (3) sleutelrotatie, waarbij alle tokens van de oude sleutel vervallen, ten koste van de gebruikerservaring. Het klassieke tegenargument: „waarom JWT gebruiken als je toch een database-lookup nodig hebt? Neem gewoon een sessiecookie.” Moderne best practice: kortlevende JWT voor de API plus een ondoorzichtig refresh-token voor de sessie. OAuth 2.1 met PKCE volgt dit patroon.