Wat is JWT Decoder?
Een JWT (JSON Web Token) is de standaardmanier waarop moderne web-API's authenticatie- en autorisatieclaims weergeven. Het is een compact, zelfstandig token bestaande uit drie delen — een header die het ondertekeningsalgoritme beschrijft, een payload met de werkelijke claims (zoals gebruikers-ID, rollen en verlooptijd), en een handtekening waarmee de ontvangende server kan verifiëren dat het token niet is aangepast.
Deze decoder leest de header en payload direct in, zodat je authenticatieproblemen kunt debuggen, kunt inspecteren welke claims een API daadwerkelijk verstuurt, of kunt controleren wanneer een token verloopt — allemaal zonder backend, CLI-tool of het plakken van gevoelige tokens in een server van derden, want alles draait lokaal in je browser.
Wanneer gebruik je deze rekenmachine
- Debuggen waarom een API een token weigert door de claims en verlooptijd te inspecteren
- Controleren van de verlooptijd van een token tijdens een supportonderzoek of incidentreactie
- Verifiëren dat een SSO- of OAuth-provider de claims uitgeeft die uw applicatie verwacht.
- Leren hoe JWT's zijn gestructureerd voor sollicitatiegesprekken of beveiligingscursussen
- Een token inspecteren dat is vastgelegd via browser-devtools of serverlogs om de inhoud te begrijpen
- Het header-algoritme tussen tokens vergelijken om authenticatiefouten door algoritme-mismatch te debuggen
Stappen:
- Plak je JWT in het invoerveld, of klik op "Voorbeeld Laden" om er een uit te proberen.
- De header en payload worden automatisch gedecodeerd terwijl je typt.
- Bekijk claims zoals iss, sub, exp en iat in leesbare vorm.
- Tijdstempel-claims (exp, iat, nbf) worden automatisch omgezet naar leesbare datums.
Formule
JWT = base64Url(header) + "." + base64Url(payload) + "." + base64Url(signature)
Decoderen: splits op ".", base64Url-decodeer de eerste twee delen, parse als JSON.
Verifiëren (hier niet gedaan): HMACSHA256(base64Url(header) + "." + base64Url(payload), secret) === signature
Gebruikscases
- Debuggen waarom een API een token weigert door de claims te inspecteren
- Controleren van de verlooptijd van een token tijdens een supportonderzoek
- Verifiëren dat een SSO- of OAuth-provider de verwachte claims uitgeeft
- Leren hoe JWT's zijn gestructureerd voor sollicitatiegesprekken of studie
- Snel een token inspecteren dat je hebt gekopieerd uit browser-devtools of serverlogs
Belangrijkste voordelen
- Decodeer elke JWT direct zonder backend of CLI-tool
- Alles draait client-side — tokens worden nooit naar een server verzonden
- Zet tijdstempel-claims automatisch om naar leesbare datums
- Gratis, geen aanmelding, werkt met elke JWT ongeacht het algoritme
Pro-tips
- Controleer bij het debuggen van een "unauthorized"-fout altijd eerst 'exp' — een verlopen token is de meest voorkomende oorzaak
- Vergelijk de 'alg' in de header met wat je backend verwacht om algoritme-mismatch-bugs op te sporen
- Vertrouw een gedecodeerde payload nooit als identiteitsbewijs zonder de handtekening server-side te verifiëren
- Gebruik kortlevende tokens met refresh-tokens in plaats van langlevende JWT's om blootstelling te beperken als er een lekt
Veelgemaakte fouten
- Aannemen dat een gedecodeerd JWT een geverifieerd JWT is — decoderen leest alleen de inhoud, het bevestigt geen authenticiteit
- Gevoelige gegevens (wachtwoorden, geheimen) in de payload opslaan en vergeten dat iedereen dit kan lezen
- Productietokens in onbetrouwbare online decoders plakken
- 'exp' (verlopen) verwarren met 'iat' (uitgegeven op) bij het debuggen van problemen met de levensduur van tokens
Sleutelbegrippen
- Claim: Een stukje informatie dat over een subject wordt beweerd, zoals een gebruikers-ID of rol
- Header: Het eerste JWT-segment, dat het ondertekeningsalgoritme en het tokentype specificeert
- Payload: Het tweede JWT-segment, met de werkelijke claims
- Handtekening: Het derde JWT-segment, gebruikt om te verifiëren dat het token niet is gewijzigd
Gerelateerde concepten
- Hash-generator:
- UUID-generator:
- Base64-encoder/decoder:
- JSON-formatter:
- Wachtwoordsterkte-controle:
Voorbeeld
Een token dat begint met eyJhbGciOiJIUzI1NiJ9 wordt gedecodeerd naar een header {"alg":"HS256","typ":"JWT"} — wat aangeeft dat het token is ondertekend met HMAC-SHA256.
Resultaten interpreteren
De decoder splitst de JWT op de twee punt-scheidingstekens en decodeert de eerste twee segmenten in Base64URL. De header vertelt u het ondertekeningsalgoritme (zoals HS256 of RS256) en het tokentype. De payload bevat de werkelijke claims: gebruikersidentiteit, rechten en tijdstempels.
Tijdstempelclaims (exp, iat, nbf) worden automatisch omgezet van Unix-tijd naar leesbare datums. Als 'exp' een datum in het verleden toont, is het token verlopen en zullen de meeste servers het afwijzen. De 'sub' (subject)-claim bevat doorgaans de gebruikers-ID en 'iss' (issuer) identificeert de server die het token heeft gemaakt.
Onthoud dat decoderen geen verificatie is. Het handtekeninggedeelte wordt weergegeven, maar kan niet worden geverifieerd zonder de geheime of openbare sleutel. Een gedecodeerde payload is louter informatief — vertrouw er nooit op als identiteitsbewijs zonder handtekeningverificatie aan de serverzijde.

