JWT-Token decodieren und ausgeben

Werfen Sie einen kurzen Blick in einen JWT-Token.

Inhaltsverzeichnis

Hier sind einige effektive Methoden, um JWT-Tokens zu decodieren und auszugeben direkt aus der Kommandozeile:

Dieser Leitfaden ist Teil des Clusters Entwickler-Tools: Der komplette Leitfaden zu modernen Entwicklungsumgebungen.

Ein Mann mit einem großen Bildschirm mit unverständlichen Inhalten

1. Verwendung von jq

Das Werkzeug jq kann verwendet werden, um JWT-Tokens zu decodieren und schön formatiert auszugeben:

  • Befehl:

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

    Dies teilt den JWT in seine Komponenten (Header und Payload) auf, decodiert sie von Base64 und formatiert sie als JSON. Für weitere Details zu Base64-Operationen, siehe Codierung – Decodierung von Base64 unter Windows, Linux und Mac.

  • Beispiel:

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

2. Bash-Skript

Ein benutzerdefiniertes Bash-Skript kann JWT-Tokens unter Verwendung von base64 und jq decodieren:

  • Skript:

    #!/usr/bin/env bash
    function decode_jwt() {
        IFS='.' read -ra PARTS "
    
  • Speichern Sie dieses Skript in einer Datei (z. B. decode_jwt.sh), machen Sie es ausführbar (chmod +x decode_jwt.sh) und führen Sie es mit Ihrem Token als Argument aus.


3. Zsh-Funktion

Fügen Sie die folgende Funktion zu Ihrer .zshrc-Datei hinzu, um schnell darauf zuzugreifen:

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

Dies decodiert den Header und die Payload unter Verwendung von OpenSSL und formatiert sie mit json.tool von Python.


4. Verwendung von jwt-cli

Installieren Sie das Werkzeug jwt-cli, um JWTs einfach zu decodieren:

  • Installation:

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

    jwt-cli decode 
    

Dieses Werkzeug unterstützt auch die Codierung und Signierung von JWTs[2].


5. Minimale One-Liner-Lösung mit OpenSSL

Für eine schnelle Lösung ohne zusätzliche Tools:

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

Dies verwendet awk, um den Token aufzuteilen, base64 zum Decodieren und Python, um die Ausgabe zu formatieren.