JWT-decoder: header, payload en verloop van een token
Deze JWT-decoder, ook te gebruiken als JWT parser online, splitst een JSON Web Token in header en payload en toont beide als ingesprongen JSON zodra je het token plakt. Tijdstempels zoals exp krijgen er een leesbare lokale datum naast, en een label vertelt je of het token is verlopen. De handtekening controleren is optioneel. Het token wordt in je browser gelezen en nooit geüpload.
JWT token decoderen: stap voor stap
- Plak het token in het veld JSON Web Token. Header en payload verschijnen meteen, er is geen knop om op te drukken.
- Lees de statuslabels boven het resultaat: of het token is verlopen, nog niet geldig is of geen verloop heeft, en hoe het met de handtekening staat.
- Kies Header kopiëren of Payload kopiëren om dat blok als gewone JSON te kopiëren. De datumnotities zitten niet in de kopie.
- Kies Wissen om het veld leeg te maken en met een ander token te beginnen.
Je kunt het token plakken zoals je het kreeg: een voorafgaande "Authorization: Bearer", aanhalingstekens eromheen en regeleinden worden verwijderd, dus kopiëren uit een request-header, een logregel of een JSON-antwoord werkt. Het veld neemt maximaal 100.000 tekens. Grote getallen en tekst in andere talen in de claims worden exact getoond en lange waarden worden afgebroken in plaats van uit beeld te lopen.
Wat een JWT parser online laat zien in header en payload
Een JWT bestaat uit drie base64url-delen die met punten zijn verbonden: header.payload.signature. De eerste twee zijn gewone JSON, alleen gecodeerd. Daarom kun je een JWT uitlezen zonder secret. Dit zijn de claims die je het vaakst ziet:
iss: issuer, wie het token heeft gemaaktsub: subject, over wie het token gaataud: audience, voor wie het token bedoeld isexp: verlooptijdnbf: niet geldig vóór dit tijdstipiat: uitgiftetijdjti: unieke token-ID
De header bevat meestal alg (het ondertekeningsalgoritme), typ en soms kid, de ID van de sleutel waarmee is ondertekend.
Verlopen of nog geldig? Zo lees je exp
exp, iat, nbf en auth_time zijn Unix-tijdstempels in seconden. De tool schrijft elk ervan als lokale datum en tijd naast het getal, zodat je niets hoeft om te rekenen. De labels boven het resultaat gebruiken de klok van je apparaat:
- Bij de
exp-claim staat hoe lang geleden het token is verlopen of hoe lang het nog geldig is. - Ontbreekt
exp, dan zie je Geen verloop: het token heeft geen exp-claim. - Ligt
nbfnog in de toekomst, dan wordt het token als nog niet geldig getoond.
De handtekening controleren met een secret of publieke sleutel
Uitlezen laat zien wat een token zegt; alleen de handtekening bewijst dat het niet is aangepast. Onder het resultaat staat Controleer de handtekening (optioneel). Laat Algoritme op automatisch herkennen staan, dat alg uit het token leest, of kies er zelf een: HS256, HS384, HS512, RS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384, ES512 of EdDSA. Plak daarna een sleutel in Secret of publieke sleutel:
- een gewoon secret voor de HS-algoritmen, precies gebruikt zoals je het typt, zonder het eerst base64-te decoderen
- een publieke PEM-sleutel (
-----BEGIN PUBLIC KEY-----) of een publieke RSA-sleutel in PKCS#1-vorm - een X.509-certificaat
- een JWK, of een hele JWKS, waarbij de sleutel wordt gekozen op de
kidvan het token
Het label verandert in Handtekening geldig of Handtekening ongeldig. Zonder sleutel blijft het op Handtekening niet gecontroleerd staan. Een token dat alg none zegt, toont Geen handtekening: dit token is niet ondertekend. Plak je een privésleutel, dan weigert de tool die en vraagt om de publieke sleutel, want die is alles wat je voor controle nodig hebt. De controle draait op de eigen WebCrypto van je browser; EdDSA vraagt om een recente browser.
Als een token zich niet laat uitlezen
De foutmelding verschijnt onder het veld en noemt het deel dat misgaat:
- De tekst heeft niet drie delen gescheiden door twee punten, en de melding zegt hoeveel delen er zijn gevonden.
- De header, payload of handtekening is geen geldige base64url, vaak door een teken dat bij het kopiëren verloren ging.
- De header of payload is geen geldige UTF-8-tekst of geen geldige JSON.
- Een token met vijf delen is een versleutelde JWE. Die wordt herkend en toegelicht, maar is zonder de privésleutel niet te lezen.
Is het veilig om hier een token te plakken?
Het token en elke sleutel worden op je apparaat gedecodeerd en gecontroleerd. Er wordt niets geüpload, niets opgeslagen en je hebt geen account nodig. Toch is een actief access token een inlogbewijs, dus gebruik waar mogelijk verlopen of test-tokens.
Deze tool leest en controleert alleen tokens. Hij maakt of ondertekent geen JWT en ontsleutelt geen JWE.
Veelgestelde vragen
Kan ik een JWT uitlezen zonder het secret?
Ja. De header en payload van een JWT zijn alleen base64url-gecodeerd, niet versleuteld, dus iedereen met het token kan ze lezen. Plak het in het veld ‘JSON Web Token’ en beide verschijnen meteen. Het secret of de publieke sleutel is alleen nodig om de handtekening te controleren, en dat is hier optioneel.
Hoe zie ik of een JWT is verlopen?
Plak het token en lees het label boven het resultaat. Dat noemt, op basis van de exp-claim, hoe lang geleden het token is verlopen of hoeveel tijd er nog over is. Een token zonder exp-claim toont ‘Geen verloop: het token heeft geen exp-claim’, en ligt nbf nog in de toekomst, dan meldt het label dat het token nog niet geldig is.
Hoe zet ik de exp-waarde van een JWT om in een datum?
Dat hoeft niet. exp is een Unix-tijdstempel in seconden, en de tool schrijft de bijbehorende lokale datum en tijd ernaast in het blok ‘Payload’. Hetzelfde gebeurt voor iat, nbf en auth_time.
Hoe controleer ik de handtekening van een JWT met een publieke sleutel?
Laat bij ‘Controleer de handtekening (optioneel)’ het ‘Algoritme’ op automatisch herkennen staan of kies dat van het token, en plak de publieke sleutel bij ‘Secret of publieke sleutel’. Een PEM-sleutel (-----BEGIN PUBLIC KEY-----), een RSA PUBLIC KEY, een X.509-certificaat, een JWK of een JWKS werkt allemaal. Daarna verandert het label in ‘Handtekening geldig’ of ‘Handtekening ongeldig’.
Kan ik een JWT lokaal uitlezen zonder het naar een server te sturen?
Ja, zo werkt deze tool. Het token wordt in je browser gesplitst, gedecodeerd en gecontroleerd, en er wordt niets geüpload of opgeslagen. Handtekeningcontroles gebruiken de eigen WebCrypto van de browser, dus er wordt geen token of sleutel ergens naartoe gestuurd.
Wat staat er in de header en payload van een JWT?
De header beschrijft het token: meestal het ondertekeningsalgoritme (alg), het type (typ) en soms een sleutel-ID (kid). De payload bevat de claims, zoals wie het heeft uitgegeven (iss), over wie het gaat (sub), voor wie het is (aud) en wanneer het verloopt (exp). Beide zijn gewone JSON, getoond in de blokken ‘Header’ en ‘Payload’.
Wat betekent alg none in een JWT?
Het token verklaart zichzelf als niet ondertekend: het handtekeningdeel is leeg en er valt niets te controleren. De tool toont dan ‘Geen handtekening: dit token is niet ondertekend’. Een server hoort zo'n token nooit als bewijs van identiteit te accepteren.
Hoe kan ik een bearer token uitlezen?
Is het een JWT, plak het dan zoals het is. Een voorafgaande ‘Authorization: Bearer’, aanhalingstekens en regeleinden worden voor je verwijderd, dus je kunt direct uit een request-header of log kopiëren. Een ondoorzichtig bearer token dat niet uit drie door punten gescheiden delen bestaat, kan niet worden gedecodeerd, en de tool zegt hoeveel delen hij vond.
Kan ik een JWE ontsleutelen of hier een JWT maken en ondertekenen?
Nee. Een token met vijf delen is een JWE en de inhoud is versleuteld, dus zonder de privésleutel is het niet te lezen; de tool herkent het en zegt dat, in plaats van een fout te tonen. Hij genereert, ondertekent of bewerkt ook geen tokens: hij leest en controleert ze alleen.
Aanbevolen
-
Yubico Security Key C NFCKlaar met het debuggen van logins? Beveilig je eigen accounts met een phishingbestendige USB-C-sleutel.
-
YubiKey 5C NFC beveiligingssleutelCombineert OTP, smartcard en FIDO2 in één sleutel, handig als je authenticatieflows bouwt en test.
-
Rain Design mStand laptopstandaardTilt je laptop op ooghoogte bij lange sessies met het lezen van tokens en logs.
Help de tools gratis te houden. ✨
Afbeeldingen dienen ter illustratie. Als Amazon-Partner verdien ik aan in aanmerking komende aankopen.