Руководство

Как декодировать JWT и посмотреть его содержимое

Вставьте JWT из трёх частей, чтобы просмотреть его заголовок, полезную нагрузку и данные подписи. Проверку подписи запускайте отдельно, указав секрет, если он у вас есть.

Инструмент Декодер JWT

Что можно проверить в JWT

JWT состоит из трёх частей, разделённых точками. Этот инструмент разбирает такую строку на заголовок, полезную нагрузку и данные подписи, чтобы вы могли просмотреть содержимое токена и отдельные сведения из его полей.

Декодирование удобно использовать при отладке авторизации, проверке переданных параметров или разборе токена, полученного от сервиса. Первые две части преобразуются из Base64URL, затем интерпретируются как JSON в кодировке UTF-8. Третья часть также декодируется из Base64URL, а её исходный текст сохраняется отдельно.

Просмотр содержимого и проверка подписи решают разные задачи. По умолчанию проверка подписи отключена, поэтому разобранный токен сам по себе не подтверждает подлинность, целостность или действительность данных.

Пошаговый разбор токена

  1. Подготовьте строку токена. Скопируйте JWT полностью, без пояснений, кавычек и лишних пробелов. В нём должны быть ровно три непустые или допустимые для разбора части, разделённые двумя точками. Пустая строка и строка только из пробелов дают неуспешный результат.

  2. Вставьте токен в поле инструмента. Перед отправкой проверьте, что точки не исчезли при копировании и что в начале или конце строки нет постороннего текста. Строка с количеством сегментов, отличным от трёх, не поддерживается.

  3. Запустите разбор. Инструмент отдельно обработает заголовок, полезную нагрузку и подпись. В первых двух сегментах ожидается JSON в UTF-8. Если Base64URL, UTF-8 или JSON не удаётся обработать, соответствующая проблема попадает в результат, а общий результат отмечается как неуспешный.

  4. Изучите заголовок и полезную нагрузку. Если после декодирования получились объекты, результат может показать алгоритм, тип токена, издателя, субъекта, аудиторию и стандартные временные утверждения. Эти поля помогают понять, какие сведения переданы, но не заменяют проверку подписи.

  5. При необходимости включите проверку. Запросите проверку и укажите секрет, предназначенный для этого токена. Инструмент использует алгоритм из декодированного заголовка и сообщает исход проверки, например действительную или недействительную подпись. Если запросить проверку без секрета, проверка пропускается, а в результат добавляется проблема.

Как читать результат и понимать его границы

Сначала проверьте общий статус результата. Неуспешный статус может означать пустой ввод, неправильное число частей или ошибку обработки сегмента. Если проблема относится к первым двум частям, проверьте их кодирование и JSON. Ошибка в непустом третьем сегменте также указывается отдельно. Пустой третий сегмент не добавляет в результат проблему подписи по правилам этого разбора.

Успешное декодирование показывает структуру переданной строки, но не доказывает, что её создал заявленный сервис или что данные не изменялись. Для такой проверки нужен отдельный запуск проверки подписи с подходящим секретом. Если секрета нет, результат проверки не следует трактовать как подтверждение: операция будет пропущена и отмечена проблемой.

Обратите внимание на временные утверждения и другие поля только как на данные токена. Сам факт их присутствия не означает, что срок действия проверен или что значение соответствует правилам вашего приложения. Для прикладного решения сопоставьте результат с логикой системы, которая выпустила токен.

Практический пример

Вы отлаживаете запрос к API и хотите понять, какие утверждения переданы в полученном JWT, не смешивая просмотр содержимого с проверкой подписи.

Получите тестовый JWT от сервиса, вставьте его строку из трёх частей в инструмент и выполните разбор. Затем при наличии предназначенного для него секрета запросите проверку подписи.

После разбора результат содержит отдельные данные заголовка, полезной нагрузки и подписи. При запросе проверки с секретом появляется исход проверки подписи; без секрета фиксируется пропуск проверки.

Ограничения

  • Декодирование показывает содержимое токена, но не подтверждает его подлинность, целостность или действительность. Для проверки подписи требуется отдельная операция с секретом.

Частые ошибки

  • Причина: в поле вставлена строка с лишним разделителем, пропущенной частью или только пробелами. Исправление: скопируйте полный токен и убедитесь, что в нём ровно три сегмента, разделённых точками.

Частые вопросы

Какие JWT поддерживает инструмент?

При условии, что строка содержит ровно три сегмента, инструмент разбирает заголовок, полезную нагрузку и данные подписи. Другая структура приводит к неуспешному результату.

Можно ли проверить подпись без секрета?

Без секрета проверка не выполняется: она пропускается, и в результат добавляется проблема. Для проверки укажите секрет и запросите эту операцию отдельно.

Почему JWT разобран с ошибкой?

Если первые две части не декодируются как Base64URL, UTF-8 и JSON, инструмент собирает проблемы и отмечает общий результат как неуспешный. Проверьте исходную строку и её копирование.

Инструмент

Декодер JWT