Ontwikkelaar

JWT Decoder

Plak een JWT om direct de header en payload te decoderen — bekijk claims, verlooptijden en handtekening zonder je browser te verlaten of data ergens naartoe te sturen.

Heeft deze tool u geholpen?

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:

  1. Plak je JWT in het invoerveld, of klik op "Voorbeeld Laden" om er een uit te proberen.
  2. De header en payload worden automatisch gedecodeerd terwijl je typt.
  3. Bekijk claims zoals iss, sub, exp en iat in leesbare vorm.
  4. 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

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.

Veelgestelde Vragen

Wat is een JWT?
Een JSON Web Token (JWT) is een compacte, URL-veilige manier om claims tussen twee partijen weer te geven. Het bestaat uit drie Base64URL-gecodeerde delen, gescheiden door punten: een header, een payload en een handtekening.
Is het veilig om mijn JWT in deze tool te plakken?
Het decoderen gebeurt volledig in je browser met JavaScript — het token wordt nooit naar een server verzonden. Behandel JWT's toch als wachtwoorden: plak geen tokens uit productiesystemen in online tools, ook niet in deze.
Waarom kan deze tool de handtekening niet verifiëren?
Het verifiëren van de handtekening van een JWT vereist de geheime sleutel (voor HMAC-algoritmen) of de publieke sleutel (voor RSA/ECDSA-algoritmen), die alleen de uitgevende server zou moeten hebben. Deze tool decodeert alleen de leesbare header en payload — hij heeft nooit toegang tot die sleutel.
Wat betekent de 'exp'-claim?
'exp' (Expiration Time) is een Unix-tijdstempel die aangeeft wanneer het token ongeldig wordt. Deze tool zet dit automatisch om naar een leesbare datum, zodat je snel kunt controleren of een token is verlopen.
Wat is een JWT?
Een JSON Web Token (JWT) is een compacte, URL-veilige manier om claims tussen twee partijen weer te geven. Het bestaat uit drie Base64URL-gecodeerde delen gescheiden door punten: een header, een payload en een handtekening.
Is het veilig om mijn JWT in deze tool te plakken?
Veelgebruikte algoritmen zijn HS256 (HMAC-SHA256, symmetrisch), RS256 (RSA-SHA256, asymmetrisch) en ES256 (ECDSA). Het veld 'alg' in de header geeft het algoritme aan. De meest voorkomende voor web-API's zijn HS256 of RS256.
Waarom kan deze tool de handtekening niet verifiëren?
'iat' (Issued At) is het moment waarop de token is aangemaakt. 'nbf' (Not Before) is het moment waarop de token geldig wordt. Als 'nbf' in de toekomst ligt, moet de token worden afgewezen, ook al is deze nog niet verlopen.
Wat betekent de 'exp'-claim?
De header en payload zijn alleen Base64URL-gecodeerd, niet versleuteld. Iedereen kan ze lezen. Bewaar nooit wachtwoorden, geheimen of gevoelige persoonlijke gegevens in een JWT-payload. Plaats alleen niet-gevoelige claims zoals gebruikers-ID, rollen en tijdstempels.
Welke algoritmen kan een JWT gebruiken?
Access tokens gaan meestal 15–60 minuten mee. Refresh tokens gaan enkele uren tot dagen mee. Kortlevende access tokens in combinatie met langlevende refresh tokens balanceren beveiliging en gebruikerservaring.
Hoe kopieer ik de gedecodeerde claims?
Een refresh token is een langlevende token die wordt gebruikt om nieuwe access tokens te verkrijgen zonder dat de gebruiker opnieuw moet inloggen. Wanneer de kortlevende access token verloopt, stuurt de client de refresh token om een nieuwe access token te krijgen.
Hoe kopieer ik de gedecodeerde claims?
De gedecodeerde header en payload worden weergegeven als opgemaakte JSON. U kunt de volledige gedecodeerde uitvoer of afzonderlijke claimwaarden kopiëren voor debugging- of documentatiedoeleinden.

Ontdek meer tools

Verse selectie uit onze volledige toolbibliotheek.