Un JSON Web Token contient trois éléments encodés en JSON. Ce guide explique leur contenu, les revendications standard et la différence entre décoder un jeton et vérifier son authenticité.

Les trois parties d’un jeton

Un JWT séparé sur ses points donne header.payload.signature. L’en-tête décrit l’algorithme alg et le type typ. La charge utile contient les revendications, données sur le sujet et la durée de validité. La signature est une somme de contrôle cryptographique sur les deux premières parties.

L’en-tête et la charge utile sont encodés, non chiffrés. Base64url est réversible par toute personne qui détient le jeton.

Revendications standard courantes

iss est l’émetteur, sub le sujet, et aud l’audience. iat indique l’émission, exp l’expiration et nbf le début de validité. Elles sont exprimées en secondes depuis 1970, par exemple 1717000000 ; cet outil les convertit en dates.

Les rôles, portées, identifiants de locataire et indicateurs sont des revendications personnalisées. Elles sont valides, mais non définies par la norme ; le tableau les marque comme personnalisées.

Signé ne signifie pas chiffré

Un JWS est signé : le serveur peut détecter les modifications, mais le contenu n’est pas masqué. Considérez la charge utile comme publique et n’y placez jamais de mots de passe ou secrets. Pour protéger le contenu, utilisez un JWE chiffré, illisible sans clé.

Décodage et vérification

Décoder un jeton ne nécessite que celui-ci ; le traitement dans le navigateur est privé. La vérification prouve l’authenticité et requiert le secret HMAC de l’émetteur (HS256) ou sa clé publique (RS256/ES256). Un serveur ne doit jamais faire confiance à un jeton non vérifié. Cet outil s’arrête au décodage. Ne collez pas de jeton de production actif que vous ne contrôlez pas.