Decodificar e imprimir el token JWT
Echa un vistazo rápido al interior de un token jwt
Aquí hay algunos métodos efectivos para decodificar e imprimir tokens JWT directamente desde la línea de comandos:
1. Usando jq
La herramienta jq
se puede usar para decodificar y formatear de manera legible los tokens JWT:
-
Comando:
echo "" | jq -R 'split(".") | .[0:2] | map(@base64d) | map(fromjson)'
Esto divide el JWT en sus componentes (encabezado y carga útil), los decodifica desde Base64 y los formatea como JSON.
-
Ejemplo:
echo "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" \ | jq -R 'split(".") | .[0:2] | map(@base64d) | map(fromjson)'
2. Script de Bash
Un script personalizado de Bash puede decodificar tokens JWT usando base64
y jq
:
-
Script:
#!/usr/bin/env bash function decode_jwt() { IFS='.' read -ra PARTS "
-
Guarda este script en un archivo (por ejemplo,
decode_jwt.sh
), hazlo ejecutable (chmod +x decode_jwt.sh
) y ejecútalo con tu token como argumento.
3. Función de Zsh
Agrega la siguiente función a tu archivo .zshrc
para acceso rápido:
- Función:
function jwt() { for part in 1 2; do b64="$(cut -f$part -d. "
Esta función decodifica el encabezado y la carga útil usando OpenSSL y las formatea con json.tool
de Python.
4. Usando jwt-cli
Instala la herramienta jwt-cli
para decodificar JWT fácilmente:
-
Instalación:
brew tap sgaunet/homebrew-tools brew install sgaunet/tools/jwt-cli
-
Comando:
jwt-cli decode
Esta herramienta también admite codificar y firmar JWTs[2].
5. Línea de comandos mínima con OpenSSL
Para una solución rápida sin herramientas adicionales:
- Comando:
echo "" | awk -F'.' '{print $1, $2}' | tr ' ' '\n' | base64 -d | python -mjson.tool
Esto usa awk
para dividir el token, base64
para decodificarlo y Python para formatear la salida.