JWT decoder
Bekijk wat er in een JSON Web Token zit.
Claims
| Claim | Waarde | Betekenis |
|---|
Deze tool decodeert tokens maar verifieert nooit handtekeningen. Je token blijft in dit browsertabblad.
Draait in je browser. Niets van wat je typt wordt ergens naartoe gestuurd.
- Leesbare exp- en iat-datums
- Verloopstatus in één oogopslag
- Token blijft op je apparaat
Zo decodeer je een JWT
- Plak het token, met of zonder het voorvoegsel Bearer.
- Bekijk de header en payload, getoond als opgemaakte JSON.
- Controleer de claims-tabel voor issuer, audience en verlooptijd.
De drie delen van een JWT
| Deel | Codering | Bevat |
|---|---|---|
| Header | Base64url JSON | Ondertekeningsalgoritme (alg) en tokentype (typ) |
| Payload | Base64url JSON | De claims: de eigenlijke data van het token |
| Handtekening | Base64url bytes | Bewijs dat header en payload niet zijn gewijzigd |
Veelgebruikte ondertekeningsalgoritmen
| alg-waarde | Type | Opmerking |
|---|---|---|
| HS256 | Symmetrisch, gedeelde secret | Gangbaar voor één app die zijn eigen tokens uitgeeft en controleert |
| RS256 | Asymmetrisch, RSA | Gangbaar wanneer een andere partij het token moet verifiëren, zoals bij OAuth |
| ES256 | Asymmetrisch, elliptische curve | Kortere handtekeningen dan RSA bij hetzelfde beveiligingsniveau |
| none | Geen handtekening | Een verifier hoort dit algoritme altijd te weigeren |
Standaardclaims, volgens RFC 7519
- exp, nbf en iat zijn allemaal NumericDate-waarden: hele seconden sinds de Unix-epoch, nooit milliseconden.
- aud kan een enkele string zijn of een array van strings, wanneer een token voor meer dan één doelgroep bedoeld is.
- jti hoort uniek te zijn per token, wat het mogelijk maakt om één specifiek token op een blocklist te zetten.
- Geen van de standaardclaims is verplicht. Een token kan alleen de eigen claims bevatten die een toepassing zelf definieert.
Veelgestelde vragen over JWT decoder
Wat zijn de drie delen van een JWT?
Een header, een payload en een handtekening, elk base64url-gecodeerd en verbonden met punten. De header noemt het ondertekeningsalgoritme, de payload bevat de claims, en de handtekening laat de server controleren wie het token heeft uitgegeven.
Verifieert deze tool de handtekening?
Nee. Hij decodeert de header en payload en controleert nooit de handtekening. Verifieer tokens op je server met de secret of public key voordat je ze vertrouwt. Het token dat je plakt verlaat nooit je browser.
Is de payload van een JWT versleuteld?
Niet in een normaal ondertekend JWT. Hij is alleen gecodeerd, dus iedereen die het token heeft kan hem lezen. Daarom mogen wachtwoorden en privégegevens er nooit in staan. Versleutelde tokens (JWE) hebben vijf delen en vereisen de sleutel.
Wat betekenen exp, iat en nbf?
Het zijn tijden in seconden sinds 1 januari 1970 (UTC). exp is wanneer het token verloopt, iat is wanneer het is uitgegeven, en nbf is het tijdstip waarvóór het niet geaccepteerd mag worden.
Waarom wordt mijn token als verlopen getoond?
De exp-tijd ligt eerder dan de klok van je apparaat. Access tokens duren vaak maar 5 tot 60 minuten, vraag dus een nieuwe aan en controleer of de klok van je computer goed staat.
Wat definieert RFC 7519?
Het definieert het JWT-formaat zelf: drie met punten verbonden base64url-delen, en de betekenis van standaardclaims zoals iss, sub, exp en aud. Het vereist geen specifiek ondertekeningsalgoritme.
Kan een JWT worden ingetrokken voordat het verloopt?
Niet door het token zelf, aangezien het slechts ondertekende data is. Een token vroegtijdig intrekken vereist ondersteuning aan de serverkant, zoals een blocklist op basis van de jti-claim, of een korte verlooptijd gecombineerd met een apart refresh-token.
Waarom worden exp en iat als grote getallen getoond in plaats van datums?
Ze worden in het token opgeslagen als NumericDate-waarden: hele seconden sinds de Unix-epoch (1 januari 1970 UTC). Deze pagina toont het ruwe getal naast een leesbare datum voor het gemak.