Декодировать и вывести 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, чтобы отформатировать вывод.

Полезные ссылки