Que veut dire « signer un JWT » et pourquoi ça compte ?
Un JWT a trois parties : header, payload, signature. Les deux premières sont du base64 brut (n'importe qui peut les lire), la troisième est une signature cryptographique qui prouve que personne n'a trafiqué les données en route.
Ici tu signes un JWT ou vérifies une signature existante. On supporte chaque algorithme standard : HS256/384/512 (symétrique, basé sur un secret), RS256/384/512 (RSA), ES256/384/512 (ECDSA), PS256/384/512 (RSA-PSS).
Tout tourne en local. Ton secret ou ta clé privée ne quitte jamais ton navigateur. C'est un outil différent du décodeur JWT (qui ne fait que décoder, pas signer).
Comment l'utiliser
- Mode Signer : JSON du header à gauche, JSON du payload à droite. Choisis un algorithme dans la première rangée de pilules.
- HMAC (HS256/384/512) : fournis un secret partagé (string), le même secret est utilisé pour vérifier plus tard. Configuration la plus simple, la plupart des APIs utilisent HS256.
- Asymétrique (RS/ES/PS) : colle une clé privée PEM (PKCS#8). Tu donnes la clé publique aux consommateurs du jeton. Plus sûr parce que l'émetteur du jeton ne connaît pas les secrets des consommateurs.
- Helper exp : ajoute un claim « expires in 1h/1d/30d » au payload. Un JWT sans exp est dangereux (n'expire jamais).
- Mode Vérifier : colle un JWT et la clé/secret. Coche verte = tout bon. X rouge = signature invalide, jeton expiré, ou autre problème.
Quand l'utiliser
Cinq situations courantes où tu signes ou vérifies un JWT :
- Créer une session utilisateur dans ton API. Après login, génère un JWT avec user_id, role, exp, signe avec HS256 + secret.
- Clé API pour une intégration partenaire. Émets un JWT long-lived (exp = +1 an), le partenaire l'attache à chaque requête.
- Réinitialisation de mot de passe. Envoie un e-mail avec un lien contenant un JWT (exp = +1h, payload = user_id), l'utilisateur clique, tu vérifies.
- Signatures webhook. Ton API signe le payload du webhook, le partenaire vérifie avec une clé publique avant de faire confiance.
- Single Sign-On (SSO). Un identity provider (Auth0, Okta) émet un JWT, chaque appli dans l'organisation le vérifie avec la clé publique.
Pour seulement décoder un JWT (sans signer), utilise le décodeur JWT. Pour générer une paire de clés pour signer, utilise le générateur de paire de clés JWT.