Decodifica e stampa il token JWT
Diamo un'occhiata veloce all'interno di un token jwt
Ecco alcuni metodi efficaci per decodificare e stampare i token JWT direttamente dalla riga di comando:
1. Utilizzo di jq
Lo strumento jq
può essere utilizzato per decodificare e formattare in modo leggibile i token JWT:
-
Comando:
echo "" | jq -R 'split(".") | .[0:2] | map(@base64d) | map(fromjson)'
Questo divide il token JWT nei suoi componenti (header e payload), li decodifica da Base64 e li formatta come JSON.
-
Esempio:
echo "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" \ | jq -R 'split(".") | .[0:2] | map(@base64d) | map(fromjson)'
2. Script Bash
Uno script personalizzato Bash può 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 (es.
decode_jwt.sh
), rendilo eseguibile (chmod +x decode_jwt.sh
) e eseguilo con il tuo token come argomento.
3. Funzione Zsh
Aggiungi la seguente funzione al 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 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 l’encoding e la firma dei JWT[2].
5. One-liner minimo 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.