Décoder et imprimer le jeton JWT

Découvrez rapidement le contenu d'un jeton JWT

Sommaire

Voici quelques méthodes efficaces pour décoder et imprimer des tokens JWT directement depuis la ligne de commande :

homme avec un grand écran avec des choses incompréhensibles

1. En utilisant jq

L’outil jq peut être utilisé pour décoder et afficher de manière structurée des tokens JWT :

  • Commande :

    echo "" | jq -R 'split(".") | .[0:2] | map(@base64d) | map(fromjson)'
    

    Cela divise le JWT en ses composants (en-tête et charge utile), les décode depuis Base64 et les formate en JSON.

  • Exemple :

    echo "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" \
      | jq -R 'split(".") | .[0:2] | map(@base64d) | map(fromjson)'
    

2. Script Bash personnalisé

Un script Bash personnalisé peut décoder des tokens JWT à l’aide de base64 et jq :

  • Script :

    #!/usr/bin/env bash
    function decode_jwt() {
        IFS='.' read -ra PARTS "
    
  • Enregistrez ce script dans un fichier (par exemple, decode_jwt.sh), rendez-le exécutable (chmod +x decode_jwt.sh) et exécutez-le avec votre token en argument.


3. Fonction Zsh

Ajoutez la fonction suivante à votre fichier .zshrc pour un accès rapide :

  • Fonction :
    function jwt() {
        for part in 1 2; do
            b64="$(cut -f$part -d. "
    

Cette fonction décode l’en-tête et la charge utile à l’aide d’OpenSSL et les formate avec json.tool de Python.


4. En utilisant jwt-cli

Installez l’outil jwt-cli pour décoder facilement des JWT :

  • Installation :

    brew tap sgaunet/homebrew-tools
    brew install sgaunet/tools/jwt-cli
    
  • Commande :

    jwt-cli decode 
    

Cet outil prend également en charge le codage et la signature des JWT[2].


5. Petite commande unique avec OpenSSL

Pour une solution rapide sans outils supplémentaires :

  • Commande :
    echo "" | awk -F'.' '{print $1, $2}' | tr ' ' '\n' | base64 -d | python -mjson.tool
    

Cette commande utilise awk pour diviser le token, base64 pour le décoder, et Python pour formater la sortie.

Liens utiles