Decodeer en print het JWT-token

Kijk snel naar de inhoud van een JWT-token.

Inhoud

Hier zijn enkele effectieve methoden om JWT-tokens te decoderen en af te drukken direct vanaf de commandoregel:

Deze gids maakt deel uit van de Developer Tools: De Complete Gids voor Moderne Ontwikkelingswerkstromen cluster.

man met een groot scherm met onbegrijpelijke dingen

1. Gebruik van jq

Het jq-gereedschap kan worden gebruikt om JWT-tokens te decoderen en leesbaar weer te geven:

  • Opdracht:

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

    Dit splitst het JWT in zijn componenten (header en payload), decodeert ze van Base64 en formateert ze als JSON. Voor meer details over Base64-bewerkingen, zie Encoder - decoderen van Base64 op Windows, Linux en Mac.

  • Voorbeeld:

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

2. Bash-script

Een aangepast Bash-script kan JWT-tokens decoderen met behulp van base64 en jq:

  • Script:

    #!/usr/bin/env bash
    function decode_jwt() {
        IFS='.' read -ra PARTS "
    
  • Sla dit script op in een bestand (bijvoorbeeld decode_jwt.sh), maak het uitvoerbaar (chmod +x decode_jwt.sh) en voer het uit met uw token als argument.


3. Zsh-functie

Voeg de volgende functie toe aan uw .zshrc-bestand voor snelle toegang:

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

Dit decodeert de header en payload met OpenSSL en formateert ze met json.tool van Python.


4. Gebruik van jwt-cli

Installeer het jwt-cli-gereedschap om JWT’s eenvoudig te decoderen:

  • Installatie:

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

    jwt-cli decode 
    

Dit gereedschap ondersteunt ook het coderen en ondertekenen van JWT’s[2].


5. Minimale One-Liner met OpenSSL

Voor een snelle oplossing zonder extra gereedschappen:

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

Dit gebruikt awk om het token te splitsen, base64 om te decoderen en Python om de output te formateren.