tigtools

JWT-decoder

Plak een JWT om de header en claims te bekijken en te zien wanneer het token verloopt. Het decoderen gebeurt in je browser; de handtekening wordt niet gecontroleerd.

Werkt in je browser Geen registratie nodig

Decoderen is niet hetzelfde als verifiëren: iedereen kan een token met willekeurige inhoud maken. Deze tool controleert de handtekening niet. De tool werkt alleen in je browser, maar plak ook hier liever geen actieve productietokens.

Zo gebruik je deze tool

  1. Kopieer een token uit een Authorization-header, een cookie of de ontwikkelaarstools van je browser. Een voorafgaand “Bearer ” wordt automatisch verwijderd.
  2. Plak het token in het veld. De header en payload worden weergegeven als opgemaakte JSON.
  3. Bekijk de statusregel en de tabel met claims voor de uitgever, doelgroep en vervaltijden in je lokale tijd.
  4. Kopieer de JSON van de header of payload als je die ergens anders nodig hebt.

Hoe het werkt

Een JSON Web Token (JWT, RFC 7519) in de gebruikelijke ondertekende vorm (JWS) bestaat uit drie Base64url-gecodeerde delen, gescheiden door punten. De header geeft aan welk algoritme is gebruikt om het token te ondertekenen, bijvoorbeeld HS256 (HMAC met SHA-256) of RS256 (RSA). De payload bevat de claims: uitspraken over de gebruiker en het token zelf. Met de handtekening kan de server controleren of de header en payload niet zijn gewijzigd.

De header en payload zijn alleen gecodeerd, niet versleuteld. Iedereen met een token kan de inhoud lezen; dat is precies wat deze tool doet. Zet geen geheimen in JWT-payloads.

Een token decoderen bewijst niets over dat token. Zonder de sleutel van de uitgever kan niemand vaststellen of de handtekening echt is. Gebruik het resultaat hier dus nooit om te bepalen of u een token kunt vertrouwen. Verificatie hoort op uw server thuis, met een bijgewerkte JWT-bibliotheek die de handtekening, het algoritme en exp, nbf, iss en aud controleert.

De geregistreerde claims worden toegelicht in de tabel. exp, nbf en iat zijn NumericDate-waarden: het aantal seconden sinds 1 januari 1970 UTC. De tool zet ze om naar datums in uw tijdzone en vergelijkt ze met de klok van uw apparaat, zonder de kleine marge die servers vaak toestaan voor klokverschillen. Als uw klok niet goed staat, is de status ook onjuist.

Tokens met vijf delen zijn versleutelde JWT's (JWE). De payload kan niet zonder de sleutel worden gedecodeerd, dus de tool geeft alleen het formaat weer.

Voorbeelden

Waarom geeft mijn API een 401-fout?

Decodeer het access token dat uw app verstuurt. Als op de statusregel “Verlopen op …” staat, moet de client het token vernieuwen. Als aud https://api.example.com toont terwijl u https://api2.example.com aanroept, komt de audience niet overeen.

Een OpenID Connect-ID-token controleren

Een ID-token van een inlogprovider bevat iss (de provider), sub (de stabiele gebruikers-ID), aud (uw client-ID), iat en exp, plus profielclaims zoals e-mail en naam. Door het token te decoderen ziet u welke claims uw app daadwerkelijk ontvangt.

Een tijdstempelclaim lezen

Een payload bevat "exp": 1735689600. De claimtabel toont dit als 1 januari 2025, 00:00:00 UTC, omgerekend naar uw lokale tijd, samen met hoe lang geleden of hoe ver in de toekomst dat is.

Veelgestelde vragen

Controleert deze tool de JWT-handtekening?

Nee. De tool decodeert alleen de header en payload. Voor verificatie is het geheim nodig (voor HS256) of de publieke sleutel van de uitgever (voor RS256 en ES256). Dit doet u op uw server met een vertrouwde bibliotheek.

Is het veilig om mijn token hier te plakken?

Het token wordt in uw browser gedecodeerd en nergens naartoe verzonden. Toch werkt een geldig token als een wachtwoord totdat het verloopt. Gebruik daarom bij voorkeur verlopen of testtokens en plak nooit productietokens in tools die u niet vertrouwt.

Waarom kan iedereen de payload lezen?

Ondertekende JWT's zijn gecodeerd met base64url; dat is geen versleuteling. De handtekening beschermt het token tegen wijzigingen, maar niet tegen uitlezen. Als de inhoud geheim moet blijven, gebruik dan een versleutelde JWT (JWE) of bewaar de gegevens op de server.

Wat betekent “exp” en in welke eenheid wordt de waarde weergegeven?

exp is de vervaltijd als NumericDate: hele seconden (geen milliseconden) sinds 1970-01-01 00:00:00 UTC. Een token moet op of na dat moment worden geweigerd.

Waarom krijg ik de melding “geen geldige base64url”?

Het token is waarschijnlijk afgebroken of gewijzigd tijdens het kopiëren, bijvoorbeeld doordat de laatste tekens ontbreken, er aanhalingstekens omheen staan of het URL-gecodeerd is (%2E in plaats van een punt). Plak het onbewerkte token precies zoals het is uitgegeven.

Privacy

Het token wordt met JavaScript in je browser gedecodeerd. Het wordt niet naar een server verstuurd, niet opgeslagen en niet opgenomen in analytics. De handtekening wordt niet gecontroleerd en er worden geen sleutels opgezocht; er wordt dus geen netwerkverzoek gedaan.