raatools/

JWT Decoder

Plak een JWT om header, payload en claims te decoderen.

Wat is een JWT-decoder?

Een JWT-decoder (JSON Web Token) parseert en visualiseert de drie delen van een JWT: header, payload en handtekening. Essentieel voor het debuggen van authenticatie en autorisatie in webapplicaties.

JWT is een open standaard (RFC 7519) voor het veilig overdragen van claims tussen partijen. Het is compact, URL-veilig en kan worden geverifieerd en vertrouwd omdat het digitaal is ondertekend.

Standaardclaims

  • sub: sub (Subject): identificeert de principal โ€” meestal een gebruikers-ID of e-mailadres.
  • iat: iat (Issued At): Unix-timestamp die aangeeft wanneer het token is aangemaakt.
  • exp: exp (Expiration): Unix-timestamp waarna het token niet langer geldig is.
  • iss: iss (Issuer): identificeert wie het token heeft uitgegeven (bijvoorbeeld uw authenticatieserver).
  • aud: aud (Audience): identificeert de beoogde ontvanger van het token (bijvoorbeeld uw API).

Hoe gebruikt u deze tool?

Plak een JWT-token. De tool splitst het in header, payload en handtekening, decodeert Base64URL en toont de inhoud leesbaar. Verlooptijden worden berekend en weergegeven.

Beveiligingstips

Ja. Deze tool decodeert de JWT volledig in uw browser met JavaScript. Er wordt geen data naar een server gestuurd. JWT's moeten echter altijd worden behandeld als gevoelige inloggegevens โ€” deel productietokens nooit publiekelijk, plaats ze niet in chatberichten en commit ze niet naar versiebeheer.

Hoe JWT-authenticatie werkt

Wanneer een gebruiker inlogt, maakt de server een JWT met de identiteit en machtigingen van de gebruiker, ondertekent deze met een geheime sleutel en stuurt deze terug naar de client. De client voegt dit token toe aan de Authorization-header van volgende API-aanvragen. De server verifieert de handtekening om te bevestigen dat het token authentiek is en niet is gewijzigd.

Deze aanpak is stateless โ€” de server hoeft geen sessiegegevens in een database op te slaan. Alle benodigde informatie zit in het token zelf. Dit maakt JWT's ideaal voor gedistribueerde systemen, microservice-architecturen en serverless-applicaties waar gedeelde state moeilijk te beheren is.

Veelgemaakte JWT-fouten

Gevoelige data (wachtwoorden, creditcardnummers) in de JWT-payload opslaan is een kritieke fout. De payload is alleen Base64-gecodeerd, niet versleuteld โ€” iedereen met het token kan het decoderen en lezen. Sla alleen identifiers en niet-gevoelige claims op in JWT's.

Te lange vervaltijden gebruiken is een andere veelvoorkomende fout. Een token dat 30 dagen geldig is, geeft een aanvaller 30 dagen om een gestolen token te gebruiken. Houd de levensduur van access tokens kort (5โ€“15 minuten) en gebruik refresh tokens voor langlopende sessies.

Veelgestelde vragen

Is een JWT versleuteld?

Standaard niet โ€” de payload is alleen Base64URL-gecodeerd, niet versleuteld. Iedereen kan de inhoud lezen. Sla geen gevoelige gegevens op in de payload. Gebruik JWE (JSON Web Encryption) als versleuteling nodig is.

Hoe trek ik een JWT in?

JWT's zijn stateless โ€” er is geen ingebouwde intrekkingsmogelijkheid. Oplossingen: (1) korte levensduur + refresh tokens. (2) Token blacklist (database van ingetrokken token-ID's). (3) Token-versie per gebruiker in de database. Elke oplossing voegt complexiteit toe.