Générateur JWT

Construisez le header et les claims, saisissez le secret et copiez un token JWT signé en HS256, HS384 ou HS512. Pratique pour tester la connexion, les profils d'accès et l'expiration sans dépendre du fournisseur d'identité.

Pour les tests uniquement. Utilisez un secret de recette ou le secret aléatoire généré ici, jamais le secret de production. La signature se fait dans votre navigateur et rien n'est envoyé à un serveur.

Algorithme

HMAC avec SHA-256, SHA-384 ou SHA-512. Celui qui valide le token a besoin du même secret.

Profil de test

L'alg du header suit l'algorithme choisi.

Ajouter un claim

Token généré

Le token s'affiche ici dès que le header, le payload et le secret sont valides.

Vous avez reçu un token et voulez voir ce qu'il contient ?

Ouvrir le Décodeur JWT

Comment utiliser le Générateur JWT ?

1

Construisez les claims

Choisissez un profil de test ou modifiez le JSON du payload. Les raccourcis ajoutent un exp relatif, iat, jti et d'autres claims courants.

2

Saisissez le secret

Utilisez le même secret que celui configuré dans votre backend de test, ou générez-en un aléatoire de la bonne taille pour l'algorithme.

3

Voyez le token

Le token est signé à chaque modification, sans bouton. Le résumé indique quand il expire.

4

Copiez et testez

Copiez le token ou le header Authorization prêt à l'emploi et utilisez-le dans Postman, curl ou un test automatisé.

Pourquoi générer un JWT de test

Se connecter au fournisseur d'identité pour chaque scénario de test n'est pas toujours pratique. Avec un token généré ici, vous testez l'API avec le profil de votre choix, y compris des cas difficiles à reproduire, comme un token déjà expiré ou sans un rôle. Cela fonctionne quand votre backend de test valide les tokens avec un secret HMAC que vous connaissez.

Des scénarios qui méritent un token de test

  • Un admin et un utilisateur avec le même sub, pour vérifier que la route bloque qui n'a pas le rôle
  • Un token expiré, pour s'assurer que l'API répond 401 et que le front demande un nouveau token
  • Un token avec un nbf dans le futur, pour tester le refus d'un token pas encore valide
  • Un token sans le claim roles ou avec un scope incomplet, pour tester la réponse 403
  • Un token avec l'aud d'une autre API, pour confirmer que l'API refuse un token qui ne lui est pas destiné
  • Une signature faite avec un autre secret, pour confirmer que l'API refuse un token modifié

HS256, RS256 et ES256 : quelle différence

HS256 utilise un secret partagé : la même valeur signe et vérifie, donc celui qui valide peut aussi émettre des tokens. RS256 utilise une paire de clés RSA : le fournisseur signe avec la clé privée et les API vérifient avec la clé publique, qui peut être diffusée. ES256 fait la même chose avec des courbes elliptiques, avec des clés et des signatures bien plus petites. Des fournisseurs comme Keycloak, Auth0 et Cognito signent en RS256 par défaut.

Ce générateur ne signe qu'en HMAC, volontairement. Signer en RS256 ou ES256 obligerait à coller une clé privée dans le navigateur, et une clé privée ne doit pas quitter le serveur qui émet les tokens. Pour tester une API qui valide du RS256, obtenez le token dans l'environnement de recette du fournisseur.

Comment la signature HMAC est calculée

Le générateur encode le header et le payload en base64url, les relie par un point et calcule le HMAC de ce texte avec le secret. Le résultat, lui aussi en base64url, devient la troisième partie du token. C'est pour cela que le moindre changement dans le payload, même une espace, produit une autre signature, et que le backend refuse un token modifié sans connaître le secret.

Taille du secret

La RFC 7518 demande un secret au moins aussi long que la sortie du hash : 32 octets pour HS256, 48 pour HS384 et 64 pour HS512. Un secret comme motdepasse123 signe sans problème, mais il peut être trouvé par force brute à partir d'un token intercepté. Le bouton Secret aléatoire en crée un de la taille minimale pour l'algorithme choisi.

Comment envoyer le token dans une requête

Le plus courant est le header Authorization avec le préfixe Bearer. Le bouton Copier Authorization copie la ligne prête à l'emploi. Avec curl, cela donne :

curl -H "Authorization: Bearer VOTRE_TOKEN" https://api.recette.exemple.com/commandes

Questions Fréquentes sur le Générateur JWT

Les questions courantes de ceux qui génèrent des JWT pour leurs tests.