Formater du JSON
Mettre en forme, valider et replier du JSON.
Développement
Lire le contenu d’un jeton JSON Web Token.
Cet avertissement vient en premier parce que la conséquence est lourde.
Un JWT est une clé. Qui le détient est vous — pour le service concerné et tant qu’il est valide. Il n’y a plus de mot de passe entre les deux.
Coller un jeton dans un décodeur en ligne revient à transmettre votre accès à un tiers. Sur un jeton de production, c’est un incident de sécurité, et c’est l’un des moyens par lesquels des accès s’échappent.
Ici rien n’est transmis : le décodage a lieu entièrement dans votre navigateur. C’est précisément pour cela que l’outil est conçu ainsi. Avec un décodeur quelconque, ce n’est pas acquis — vérifiez-le, ou considérez le jeton comme compromis.
Travaillez autant que possible avec un jeton de test. Si l’un d’eux fuit malgré tout, révoquez-le et générez-en un nouveau.
La méprise la plus répandue au sujet des JWT.
Un JWT ordinaire comporte trois parties séparées par des points : l’en-tête, les données et la signature. Les deux premières sont encodées en base64url, non chiffrées — n’importe qui peut les lire.
La signature protège contre la modification, pas contre la lecture. Elle garantit que le contenu n’a pas été altéré depuis l’émission, et rien d’autre.
Ne placez donc jamais dans un jeton ce que son porteur ne doit pas savoir. Ni mots de passe, ni notes internes, ni données personnelles superflues. Ce qui s’y trouve est lisible par l’utilisateur.
Cet outil ne vérifie pas la signature. Cela supposerait la clé, qui n’a pas sa place dans un navigateur. Vous voyez donc ce que contient le jeton, pas s’il est valide.
Quelques champs standard figurent dans presque tous les jetons.
| Champ | Signification |
|---|---|
| exp | expire le — au-delà, le jeton est refusé |
| iat | émis le |
| nbf | non valide avant |
| sub | qui le jeton décrit |
| iss | qui l’a émis |
| aud | pour quel service |
Les horodatages sont exprimés en secondes depuis 1970 en UTC, illisibles tels quels ; ils apparaissent ici en date et heure.
Un jeton expiré est la cause la plus fréquente d’une erreur inattendue sur une API. Regardez donc exp en premier. Tenez compte aussi du décalage d’horloge entre serveur et client : quelques minutes d’écart peuvent faire paraître invalide un jeton tout juste émis.
Non. En-tête et données sont seulement encodés et lisibles par tous.
Rien n’est transmis ici, donc techniquement oui. Prenez tout de même l’habitude de ne pas le faire.
Non. Cela demanderait la clé, qui n’a pas sa place dans un navigateur.
Le plus souvent il est expiré. Regardez exp, et le décalage d’horloge.
Tout ce que son porteur ne doit pas savoir.
Non, le décodage a lieu dans votre navigateur.