JWTトークンのデコードと出力

JWTトークンの内部を簡単に確認する

目次

JWTトークンを直接コマンドラインからデコードおよび印刷するためのいくつかの効果的な方法を以下に示します:

画面に意味不明な内容を表示している男性

1. jqを使用する

jqツールはJWTトークンをデコードし、整形して印刷するために使用できます:

  • コマンド:

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

    これはJWTをその構成要素(ヘッダーおよびペイロード)に分割し、Base64からデコードし、JSON形式に整形します。

  • :

    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を簡単にデコードするためにはjwt-cliツールをインストールしてください:

  • インストール:

    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を使用して出力を整形します。

有用なリンク