Декодирование и вывод JWT-токена
Быстро заглянем внутрь JWT-токена.
Вот несколько эффективных методов декодирования и вывода JWT-токенов непосредственно из командной строки:
Это руководство является частью кластера Инструменты разработчика: Полное руководство по современным рабочим процессам.

1. Использование jq
Инструмент jq можно использовать для декодирования и форматирования JWT-токенов:
-
Команда:
echo "" | jq -R 'split(".") | .[0:2] | map(@base64d) | map(fromjson)'Эта команда разбивает JWT на его компоненты (заголовок и полезную нагрузку), декодирует их из Base64 и форматирует как JSON. Подробнее о операциях с Base64 см. Кодирование и декодирование Base64 на Windows, Linux и Mac.
-
Пример:
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 для форматирования вывода.