Dekoduj i wydrukuj token JWT.

Szybkie spojrzenie wewnątrz tokena JWT

Page content

Oto skuteczne metody dekodowania i drukowania tokenów JWT bezpośrednio z linii polecenia:

Ten przewodnik jest częścią klastrowego przewodnika Narzędzia dla programistów: Kompletny przewodnik po nowoczesnych workflowach deweloperskich.

mężczyzna z dużym ekranem z niezrozumiałymi danymi

1. Użycie jq

Narzędzie jq można wykorzystać do dekodowania i ładnego wyświetlania tokenów JWT:

  • Polecenie:

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

    To polecenie dzieli token JWT na jego składowe (nagłówek i payload), dekoduje je z Base64 i formatuje jako JSON. Więcej informacji na temat operacji Base64 znajdziesz w artykule Kodowanie i dekodowanie Base64 na Windows, Linux i Mac.

  • Przykład:

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

2. Skrypt Bash

Niestandardowy skrypt Bash może dekodować tokeny JWT przy użyciu base64 i jq:

  • Skrypt:

    #!/usr/bin/env bash
    function decode_jwt() {
        IFS='.' read -ra PARTS "
    
  • Zapisz ten skrypt w pliku (np. decode_jwt.sh), nadaj mu prawa wykonywania (chmod +x decode_jwt.sh) i uruchom go, podając token jako argument.


3. Funkcja Zsh

Dodaj następującą funkcję do swojego pliku .zshrc, aby uzyskać szybki dostęp:

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

Funkcja ta dekoduje nagłówek i payload przy użyciu OpenSSL, a następnie formatuje je przy pomocy json.tool z Pythona.


4. Użycie jwt-cli

Zainstaluj narzędzie jwt-cli, aby łatwo dekodować tokeny JWT:

  • Instalacja:

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

    jwt-cli decode 
    

To narzędzie obsługuje również kodowanie i podpisywanie tokenów JWT[2].


5. Minimalna jednopierścieniowa linijka z OpenSSL

Dla szybkiego rozwiązania bez dodatkowych narzędzi:

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

Polecenie to wykorzystuje awk do podziału tokenu, base64 do dekodowania oraz Pythona do formatowania wyjścia.

Przydatne linki