Decodifica e stampa il token JWT

Dai una rapida occhiata all'interno del token JWT.

Indice

Ecco alcuni metodi efficaci per decodificare e stampare i token JWT direttamente dalla riga di comando:

Questa guida fa parte del cluster Strumenti per Sviluppatori: La Guida Completa ai Workflow Moderni di Sviluppo.

uomo con uno schermo grande pieno di cose incomprensibili

1. Utilizzo di jq

Lo strumento jq può essere utilizzato per decodificare e visualizzare in modo leggibile i token JWT:

  • Comando:

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

    Questo comando divide il JWT nei suoi componenti (header e payload), li decodifica dal formato Base64 e li formatta come JSON. Per ulteriori dettagli sulle operazioni Base64, consulta Codifica - decodifica Base64 su Windows, Linux e Mac.

  • Esempio:

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

2. Script Bash

È possibile utilizzare uno script Bash personalizzato per decodificare i token JWT utilizzando base64 e jq:

  • Script:

    #!/usr/bin/env bash
    function decode_jwt() {
        IFS='.' read -ra PARTS "
    
  • Salva questo script in un file (ad esempio, decode_jwt.sh), rendilo eseguibile (chmod +x decode_jwt.sh) ed eseguilo passando il tuo token come argomento.


3. Funzione Zsh

Aggiungi la seguente funzione al tuo file .zshrc per un accesso rapido:

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

Questa funzione decodifica l’header e il payload utilizzando OpenSSL e li formatta con lo strumento json.tool di Python.


4. Utilizzo di jwt-cli

Installa lo strumento jwt-cli per decodificare facilmente i JWT:

  • Installazione:

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

    jwt-cli decode 
    

Questo strumento supporta anche la codifica e la firma dei JWT[2].


5. One-Liner Minimale con OpenSSL

Per una soluzione rapida senza strumenti aggiuntivi:

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

Questo utilizza awk per dividere il token, base64 per decodificarlo e Python per formattare l’output.