Декодировать и вывести 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
Пользовательский скрипт Bash может декодировать JWT-токены с использованием base64
и jq
:
-
Скрипт:
#!/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 и форматирует их с помощью json.tool
из Python.
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, чтобы отформатировать вывод.