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.
Token rapide pour une suite de tests
Section titled “Token rapide pour une suite de tests”jwtop create --alg HS256 --secret testsecret \ --sub user-42 --iss myapp --exp 1h --iatCapturez la sortie dans une variable :
export TEST_TOKEN=$(jwtop create --alg HS256 --secret testsecret \ --sub user-42 --exp 1h --iat)Token avec des claims personnalisés
Section titled “Token avec des claims personnalisés”Utilisez --claim key=value (répétable) pour ajouter n’importe quel champ au payload :
jwtop create --alg HS256 --secret testsecret \ --sub user-42 \ --claim role=admin \ --claim plan=pro \ --claim verified=true \ --claim account_id=9001Les 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)”# Expire en 30 secondes — utile pour tester la gestion de l'expirationjwtop create --alg HS256 --secret testsecret --sub user-1 --exp 30sGé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) :
# Secret HS256 aléatoire pour une suite de testsexport 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.pemConsultez la référence genkey pour toutes les options.
Tokens à clé asymétrique (RS256 / ES256)
Section titled “Tokens à clé asymétrique (RS256 / ES256)”# Générer une paire de clés une seule foisjwtop 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 tokenjwtop create --alg RS256 --key test-private.pem --sub user-42 --exp 1h
# Le vérifierjwtop verify $TOKEN --key test-private.pem.pubDans GitHub Actions
Section titled “Dans GitHub Actions”- 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"- name: Install jwtop run: go install github.com/cerberauth/jwtop@latest
- name: Generate test JWT run: | TOKEN=$(jwtop create --alg HS256 \ --secret "$TEST_SECRET" \ --sub ci-user --exp 1h) echo "TEST_TOKEN=$TOKEN" >> "$GITHUB_ENV" env: TEST_SECRET: ${{ secrets.TEST_SECRET }}