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スクリプト
base64
とjq
を使用してJWTトークンをデコードするカスタムBashスクリプトを作成できます:
-
スクリプト:
#!/usr/bin/env bash function decode_jwt() { IFS='.' read -ra PARTS "
-
このスクリプトをファイル(例:
decode_jwt.sh
)に保存し、実行可能にします(chmod +x decode_jwt.sh
),トークンを引数として渡して実行します。
3. Zsh関数
.zshrc
ファイルに以下の関数を追加して、クイックアクセスを実現できます:
- 関数:
これはOpenSSLを使用してヘッダーとペイロードをデコードし、Pythonの
function jwt() { for part in 1 2; do b64="$(cut -f$part -d. "
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を使用して出力を整形します。