De Anatomie van een JWT: Header, Payload en Handtekening
Een JSON Web Token (JWT) is een compacte en op zichzelf staande manier om informatie veilig tussen partijen uit te wisselen als een JSON-object. Op het eerste gezicht lijkt een JWT op een willekeurige reeks tekens, maar het heeft een duidelijke structuur die bestaat uit drie delen, gescheiden door punten (.):
header.payload.handtekening
- Header: Het eerste deel identificeert welk algoritme is gebruikt om de handtekening te genereren. Meestal bevat het twee velden:
alg(algoritme, bijv.HS256ofRS256) entyp(token type, wat bijna altijdJWTis). De header is een JSON-object dat vervolgens met Base64Url wordt gecodeerd.
- Payload: Het tweede deel bevat de 'claims'. Dit zijn beweringen over een entiteit (meestal de gebruiker) en aanvullende gegevens. Er zijn geregistreerde claims (zoals
issvoor uitgever,expvoor vervaltijd ensubvoor onderwerp), publieke claims en private claims. Net als de header is de payload een JSON-object dat met Base64Url is gecodeerd. De Base64-decodering van dit deel onthult de informatie die het token transporteert.
- Handtekening (Signature): Om de handtekening te creëren, worden de gecodeerde header, de gecodeerde payload, een geheim (secret) en het in de header gespecificeerde algoritme gebruikt. De handtekening wordt gebruikt om te verifiëren dat de afzender van de JWT is wie hij zegt te zijn en om te garanderen dat het bericht onderweg niet is gewijzigd.
Onze JWT Decoder neemt de volledige token-string, splitst deze in drie delen en decodeert de header en payload zodat u de inhoud kunt inspecteren. De inhoud wordt als een leesbaar JSON-object gepresenteerd, wat u verder kunt analyseren met een JSON Formatter.