JWT トークンをデコードして出力する

JWT トークンの内容を素早く確認します

目次

コマンドラインから JWT トークンを直接デコードして印刷するための効果的な方法をいくつか紹介します:JWT トークンのデコードと印刷

このガイドは、開発者ツール:現代の開発ワークフロー完全ガイド クラスターの一部です。

意味不明なものが映った大きな画面を見つめる男性

1. jq の使用

jq ツールを使用すると、JWT トークンをデコードして美しく整形して表示できます:

  • コマンド:

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

    このコマンドは JWT をその構成要素(ヘッダーとペイロード)に分割し、Base64 からデコードして JSON 形式で整形します。Base64 操作の詳細については、Windows、Linux、Mac での Base64 エンコーディングとデコーディング を参照してください。

  • :

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

2. Bash スクリプト

base64jq を使用して JWT トークンをデコードするカスタム Bash スクリプトを作成できます:

  • スクリプト:

    #!/usr/bin/env bash
    function decode_jwt() {
        IFS='.' read -ra PARTS "
    
  • このスクリプトをファイル(例:decode_jwt.sh)に保存し、実行可能にする(chmod +x decode_jwt.sh)と、トークンを引数として指定して実行できます。


3. Zsh 関数

.zshrc ファイルに以下の関数を追加することで、素早くアクセスできるようになります:

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

この関数は OpenSSL を使用してヘッダーとペイロードをデコードし、Python の json.tool で整形します。


4. jwt-cli の使用

jwt-cli ツールをインストールして、簡単に JWT をデコードできます:

  • インストール:

    brew tap sgaunet/homebrew-tools
    brew install sgaunet/tools/jwt-cli
    
  • コマンド:

    jwt-cli decode 
    

このツールは、JWT のエンコーディングと署名もサポートしています [2]。


5. OpenSSL を使った最小限のワンライナー

追加のツールなしで素早く解決したい場合:

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

これは awk でトークンを分割し、base64 でデコードし、Python で 出力を整形 します。

参考リンク