JSON Web Tokens uitgelegd: header, payload en signature, de zeven geregistreerde claims uit RFC 7519, beveiligingsvalkuilen, en een decoder die uw token nergens naartoe stuurt.
Een JWT (JSON Web Token) is een compacte, URL-veilige tekenreeks van drie base64url-delen, gescheiden door punten: een header die het algoritme noemt, een payload met claims zoals sub en exp, en een signature. Iedereen kan de payload decoderen en lezen; alleen de signature, gecontroleerd met de juiste sleutel, bewijst dat niemand iets heeft gewijzigd.
Geregistreerde claimnamen (RFC 7519, sectie 4.1)
Plak een token in de decoder hieronder om de header en payload te zien, met uitleg bij elke geregistreerde claim en elke tijdstempel omgezet in een leesbare datum. Het decoderen gebeurt in de eigen JavaScript van deze pagina, dus het token wordt nooit geüpload. Dat is belangrijk, want een geldig token is een sleutel tot iemands account.
Alleen als het decoderen in uw browser gebeurt. Het token is een inloggegeven: iedereen met een geldig token kan de API als die gebruiker aanroepen totdat het verloopt. De decoder op deze pagina draait lokaal en verstuurt niets, maar voor productietokens is het veiligst om alleen testtokens te decoderen.
Een normale ondertekende JWT (een JWS) niet. De payload is alleen base64url-gecodeerd, en dat kan iedereen terugdraaien. Versleutelde tokens bestaan als JWE, met vijf door punten gescheiden delen in plaats van drie, maar de meeste login- en API-tokens zijn ondertekend, niet versleuteld.
NumericDate: hele seconden sinds 1970-01-01T00:00:00Z, zonder schrikkelseconden. Date.now() in JavaScript geeft milliseconden terug, dus deel door 1000 voordat u vergelijkt, een heel veelvoorkomende bug.
Elk script dat op de pagina draait kan localStorage lezen, dus één cross-site scripting-bug kan het token stelen. Een HttpOnly, Secure, SameSite cookie houdt het weg van scripts, ten koste van het afhandelen van CSRF. Veel teams kiezen de cookie voor browsersessies.
Niet met het token alleen, want het blijft geldig tot exp. Gebruik een korte geldigheid plus refresh tokens die u kunt intrekken, of houd een blokkeerlijst bij van jti-waarden voor tokens die eerder ongeldig moeten worden.
Leest de claims zonder ze te verifiëren. Prima om een gebruikersnaam in de UI te tonen, nooit om over toegang te beslissen.
jwtVerify controleert de signature, exp en nbf, en met deze opties ook de issuer, de audience en het toegestane algoritme.
Plak een token om de header en payload te lezen. Het decoderen draait in uw browser; het token wordt niet verstuurd, opgeslagen of gelogd.
Wie het token heeft uitgegeven
Over wie het token gaat, meestal een gebruikers-id
Welke ontvangers het moeten accepteren
Afwijzen op of na dit tijdstip
Afwijzen vóór dit tijdstip
Wanneer het token is aangemaakt
Een unieke id, handig om hergebruik te blokkeren
JWT
Voorbeeldtoken laden
Wissen
Header
Payload
Signature (hier niet geverifieerd)
Claims uitgelegd
Claim
Waarde
Betekenis
Eigen claim
Een ondertekende JWT heeft 3 delen gescheiden door punten; deze heeft er {n}.
5 delen betekent een versleutelde JWE, die zonder de sleutel niet te lezen is.
Deel {n} is geen geldige base64url-JSON.
Verlopen {v}
Geldig tot {v}
Niet geldig tot {v}
alg is none: dit token heeft geen signature en moet worden afgewezen.
Lokaal gedecodeerd. Niets verlaat deze pagina.
Gratis beginnen · Geen creditcard nodig