JWT-decoder

Decodeer elk JSON Web Token in je browser: zie de header en payload, exp, iat en nbf als echte datums in je tijdzone, en of het token verlopen is.

Gedecodeerd in je browser. Je token wordt nooit naar onze server gestuurd.

Overzicht

Header


                    

Payload (claims)


                    

Token en handtekening

Lees elk JWT zonder het ergens naartoe te sturen

Plak een JSON Web Token en de decoder splitst het in drie delen: de header (met welk algoritme het ondertekend is), de payload (de claims: wie de gebruiker is, waar hij bij mag en wanneer het token verloopt) en de handtekening. De JSON wordt netjes opgemaakt, zodat je hem in één oogopslag leest.

Tijdclaims worden echte datums. exp, iat en nbf verschijnen in je eigen tijdzone, in UTC en als ‘over 20 minuten’ of ‘3 dagen geleden’, en de status vertelt meteen of het token nog geldig, verlopen of nog niet geldig is.

Tokens geven vaak toegang tot echte accounts, dus alles wordt in je browser gedecodeerd. Het token wordt nooit naar onze server geüpload, gelogd of opgeslagen. Dat is veiliger dan het in een chatbot plakken of op een site die het naar een server stuurt.

Zo decodeer je een JWT

  1. Kopieer het token uit je app, een Authorization-header, een cookie of de ontwikkelaarstools van je browser.
  2. Plak het in het vak. Een Bearer-voorvoegsel, aanhalingstekens, spaties en regeleinden worden automatisch verwijderd.
  3. Lees het overzicht: status, algoritme, uitgever, onderwerp, doelgroep en de exacte tijden van uitgifte en verloop.
  4. Gebruik de kopieerknoppen om de opgemaakte JSON van de header of payload in een bugmelding of je notities te zetten.

Wat de bekendste claims betekenen

  • exp (expiration time): na dit moment moet het token geweigerd worden.
  • iat (issued at): wanneer het token is gemaakt.
  • nbf (not before): het token mag vóór dit moment niet geaccepteerd worden.
  • iss (issuer): wie het token heeft gemaakt, vaak de URL van je inlogserver.
  • sub (subject): over wie het token gaat, meestal een gebruikers-ID.
  • aud (audience): de app of API waarvoor het token bedoeld is.
  • alg en kid (in de header): het ondertekeningsalgoritme, zoals HS256 of RS256, en de ID van de sleutel waarmee is ondertekend.

JWT-datums zijn NumericDate-waarden: het aantal seconden sinds 1 januari 1970 UTC. De decoder rekent ze voor je om, dus je hebt geen aparte timestamp-converter nodig.

Tips voor debuggen

  • Antwoordt een API met 401 vlak na het inloggen, kijk dan eerst naar exp en nbf. Een serverklok die een paar minuten voor- of achterloopt is een veelvoorkomende oorzaak; de meeste bibliotheken staan een kleine marge toe.
  • Een datum tienduizenden jaren in de toekomst betekent dat de waarde in milliseconden in plaats van seconden is geschreven. De decoder waarschuwt je als dat gebeurt.
  • Vergelijk aud en iss met wat je API verwacht. Een token voor een andere app of omgeving (staging in plaats van productie) is een veelvoorkomende oorzaak van ‘ongeldig token’-fouten.
  • Een header met alg op none betekent dat het token niet ondertekend is. Accepteer zulke tokens nooit in productie.

Beperkingen en goed om te weten

  • Decoderen is niet verifiëren. Iedereen kan een token met willekeurige claims maken; alleen de handtekening controleren met de juiste sleutel, op je server, bewijst dat het echt is. Deze tool controleert geen handtekeningen.
  • De payload van een gewoon JWT is alleen gecodeerd, niet versleuteld. Iedereen met het token kan hem lezen, dus zet nooit wachtwoorden of geheimen in claims.
  • Versleutelde tokens (JWE, vijf delen) zijn zonder sleutel niet leesbaar, daarom wordt alleen de header getoond.
  • Getallen worden precies getoond zoals ze in het token staan, dus lange numerieke ID’s worden nooit afgerond.

Veelgestelde vragen

Is het veilig om hier een echt token te plakken?

Ja. Het decoderen gebeurt met JavaScript in je browser en het token wordt nooit naar onze server gestuurd. Behandel actieve tokens toch als wachtwoorden: deel ze niet in screenshots of chats en laat ze verlopen.

Kan deze tool zeggen of een token geldig is?

Hij laat aan de hand van de datums zien of het token verlopen of nog niet geldig is. Of de handtekening echt is, kan hij niet zeggen, want daarvoor is de geheime of publieke sleutel nodig die alleen je server hoort te hebben.

Waarom staat mijn token als verlopen terwijl ik het net heb gekregen?

Controleer de klok van de server die het uitgaf en kijk of exp in seconden staat en niet in milliseconden. Ligt iat ook uren in het verleden, dan loopt de serverklok waarschijnlijk verkeerd.

Wat is het verschil tussen een JWT-decoder en een Base64-decoder?

Een JWT bestaat uit drie Base64URL-gecodeerde delen met punten ertussen. Een Base64-decoder leest één deel tegelijk, maar de JWT-decoder splitst het token voor je, kent het URL-veilige alfabet en ontbrekende opvulling, en zet de datums om in leesbare tijden.

Werkt het offline?

Ja. Zodra de pagina geladen is, kun je de internetverbinding verbreken en tokens blijven decoderen.

Gerelateerde tools

  • Base64-decoder: Decodeer Base64 direct terug naar leesbare tekst. Bekijk authenticatieheaders, tokens, API-payloads en e-mailinhoud. Gratis online Base64-decoder.
  • JSON-validator en -formatter: Valideer en formatteer JSON online. Vind syntaxfouten en maak van geminimaliseerde JSON leesbare code met inspringing. Gratis JSON-formatter.
  • URL-decoder: Decodeer procentgecodeerde URL's en querystrings terug naar leesbare tekst. Zet %20, %26 en %C3%A9 direct om naar normale tekens. Gratis URL-decoder.
  • Base64-encoder: Codeer elke tekst direct naar Base64. Handig voor data-URI's, HTTP Basic-authenticatie, e-mail en API's. Gratis online Base64-encoder.

Soortgelijke tools

Base64-decoder

Decodeer Base64 direct terug naar leesbare tekst. Bekijk authenticatieheaders, tokens, API-payloads en e-mailinhoud. Gratis online Base64-decoder.

JSON-validator en -formatter

Valideer en formatteer JSON online. Vind syntaxfouten en maak van geminimaliseerde JSON leesbare code met inspringing. Gratis JSON-formatter.

URL-decoder

Decodeer procentgecodeerde URL's en querystrings terug naar leesbare tekst. Zet %20, %26 en %C3%A9 direct om naar normale tekens. Gratis URL-decoder.

Populaire gratis tools