Aller au contenu

Générer des tokens pour les tests

jwtop create vous permet de créer des JWT arbitraires depuis la ligne de commande — sans serveur ni infrastructure d’authentification nécessaire. C’est utile pour amorcer des tests d’intégration, alimenter des variables d’environnement CI ou reproduire des scénarios de production en local.

Terminal window
jwtop create --alg HS256 --secret testsecret \
--sub user-42 --iss myapp --exp 1h --iat

Capturez la sortie dans une variable :

Terminal window
export TEST_TOKEN=$(jwtop create --alg HS256 --secret testsecret \
--sub user-42 --exp 1h --iat)

Utilisez --claim key=value (répétable) pour ajouter n’importe quel champ au payload :

Terminal window
jwtop create --alg HS256 --secret testsecret \
--sub user-42 \
--claim role=admin \
--claim plan=pro \
--claim verified=true \
--claim account_id=9001

Les valeurs sont analysées automatiquement : 9001 devient un entier, true devient un booléen, tout le reste reste une chaîne.

Tokens de courte durée (test d’expiration)

Section titled “Tokens de courte durée (test d’expiration)”
Terminal window
# Expire en 30 secondes — utile pour tester la gestion de l'expiration
jwtop create --alg HS256 --secret testsecret --sub user-1 --exp 30s

Générer une clé de signature ou un secret

Section titled “Générer une clé de signature ou un secret”

jwtop genkey produit du matériel clé avec des paramètres de force minimale imposés (RSA ≥ 2048 bits, secret HMAC ≥ la taille de sortie MAC, crypto/rand uniquement) :

Terminal window
# Secret HS256 aléatoire pour une suite de tests
export TEST_SECRET=$(jwtop genkey --alg HS256)
# Paire de clés RSA sur disque : test-private.pem (0600) + test-private.pem.pub (0644)
jwtop genkey --alg RS256 --out test-private.pem

Consultez la référence genkey pour toutes les options.

Tokens à clé asymétrique (RS256 / ES256)

Section titled “Tokens à clé asymétrique (RS256 / ES256)”
Terminal window
# Générer une paire de clés une seule fois
jwtop genkey --alg RS256 --out test-private.pem
# (ou : openssl genrsa -out test-private.pem 2048 && openssl rsa -in test-private.pem -pubout -out test-private.pem.pub)
# Créer un token
jwtop create --alg RS256 --key test-private.pem --sub user-42 --exp 1h
# Le vérifier
jwtop verify $TOKEN --key test-private.pem.pub
- name: Generate test JWT
uses: cerberauth/jwtop-action@v1
id: jwt
with:
args: create --alg HS256 --secret ${{ secrets.TEST_SECRET }} --sub ci-user --exp 1h
- name: Export token
run: echo "TEST_TOKEN=${{ steps.jwt.outputs.result }}" >> "$GITHUB_ENV"