JWT Decoder divise un jeton Web JSON en ses trois segments séparant les points, base64url-décèle l'en-tête et la charge utile, et rend les deux en JSON formaté. Les JWT ne sont pas cryptés - le "encodage" n'est que Base64URL, une transformation réversible - afin que quiconque détenant un jeton puisse lire toutes les affirmations à l'intérieur. Cet outil rend cette inspection instantanée : collez un jeton à partir d'un en-tête de cookie Set-cookie, un en-tête d'autorisation (le préfixe de support est supprimé automatiquement) ou le tableau de bord de votre fournisseur d'authentification, et voyez exactement ce que votre serveur y a mis.
Le tableau des revendications est l'endroit où le débogage se produit réellement. Les réclamations à temps enregistrés - exp (expiration), IAT (émises AT) et NBF (pas avant) - sont des horodatages Unix, inutiles à lire RAW. Le décodeur convertit chacun en une date humaine et une heure relative ("expirée il y a 3 heures", "expire en 14 minutes") et les jetons périmés en rouge. La plupart des incidents "401 non autorisés, mais le jeton semble bien" se résume à une EX expirée, à une NBF à horloge ou à une réclamation AUD qui ne correspond pas à ce que valide l'API - tous visibles ici en deux secondes.
Une chose que cet outil ne fait délibérément pas : vérifier les signatures. La vérification nécessite la signature secrète (HS256) ou publique (RS256/ES256), et un outil côté client vous demandant de coller un secret HMAC serait d'enseigner de mauvaises habitudes. Le décodage est à 100 % du côté client. Le jeton ne quitte jamais votre navigateur, n'atteint aucun serveur et n'apparaît dans aucun journal des demandes, ce qui compte, car un JWT de production en direct est un identifiant au porteur. Quiconque l'a, c'est vous.
Déposez le JWT dans la zone de saisie. Saisissez-le à partir de l'en-tête d'autorisation dans l'onglet Réseau de votre navigateur DevTools, un cookie, une storage local ou une réponse de curl. Un préfixe de premier plan "Berer" et un espace blanc environnant sont supprimés automatiquement, de sorte que vous pouvez coller la valeur d'en-tête complète sans nettoyage.
Les deux segments sont rendus comme JSON formaté côte à côte. L'en-tête vous indique l'algorithme de signature (ALG : RS256, HS256, etc.) et la clé ID (KID) — Utile lorsque votre rotation JWK se comporte mal. La charge utile contient les revendications : sous, ISS, AUD, portées, rôles et toutes les données personnalisées que votre couche d'authentification a ajoutées.
Les revendications de temps (EXP, IAT, NBF) sont décodées d'unix secondes en dates lisibles avec des heures relatives. Un EXP expiré apparaît en rouge avec exactement combien de temps il a périmé ; un EXPÉDIT valide apparaît en vert avec le temps restant. Si NBF est dans le futur - généralement l'horloge entre vos serveurs - le jeton sera rejeté même s'il "a l'air" bien.
Cet outil ne vérifie jamais la signature, qui nécessite la clé secrète ou publique et appartient à votre serveur, et non dans un outil de navigateur. Ne traitez jamais les réclamations décodées comme une entrée fiable : un attaquant peut frapper un jeton avec n'importe quelle charge utile qu'il souhaite. Seule une signature vérifiée prouve que les réclamations sont venues de votre émetteur non modifié.
Décodage Base64URL en TypeScript pur — les deux segments JSON formatés et lisibles immédiatement
Ex-claimation EXPÉDÉE ROUGE A L'EXPRESSION, VERT VERT QU'IL EST VALABLE, AVEC
EXP, IAT et NBF convertis à partir des secondes brutes Unix en dates ISO et formulation de style "il y a 3 heures"
Collez tout l'en-tête de l'autorisation - "Berer" et les espaces blancs parasites sont supprimés automatiquement
Generate MD5, SHA-1, SHA-256, SHA-384, and SHA-512 hashes from any text
Encode and decode text to/from Base64 format
Convert between Unix timestamps and human-readable dates
Format, validate, and minify JSON data
0 comments
No comments yet. Be the first to share your thoughts!