IT Market
Инструменты/Код/Данные/Декодер JWT-токена онлайн — header и payload
JWT DECODER

Разбор заголовка и payload

Коротко об инструменте

Декодер JWT-токена онлайн — header и payload

JWT состоит из трёх частей, разделённых точками: заголовка, полезной нагрузки и подписи. Первые две — обычный JSON в кодировке base64url, поэтому их можно прочитать без ключа. Страница разбирает вставленный токен и раскладывает его на «Заголовок» и «Данные», где видно алгоритм подписи, идентификатор пользователя, роли и время жизни. Это диагностика, а не проверка: подпись здесь не сверяется, и валидность токена такой разбор не подтверждает. Смотрите также: раскодировать base64url-часть вручную, форматировать payload и проверить JSON, посчитать SHA-256 для проверки подписи.

Как пользоваться

  1. Вставьте токен целиком в поле с подсказкой eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 — вместе с обеими точками и третьей частью.
  2. Уберите из строки префикс Bearer, если скопировали её из заголовка Authorization.
  3. Нажмите «Разобрать JWT» и посмотрите блок «Заголовок»: там будет алгоритм alg и тип typ.
  4. Разберите блок «Данные»: поля sub, exp, iat и роли пользователя показаны как обычный JSON.
  5. Переведите значение exp в дату через конвертер Unix timestamp, чтобы понять, истёк ли токен.

Вопросы и ответы

Проверяется ли подпись токена?

Нет. Инструмент только раскодирует первые две части и показывает их как JSON. Для проверки подписи нужен секрет HMAC или публичный ключ RSA, а сверять его в браузере на чужой странице — плохая практика. Считайте разбор способом посмотреть содержимое: то, что payload читается, ничего не говорит о валидности токена.

Как понять по payload, что срок действия JWT истёк?

Смотрите поле exp — это Unix-время в секундах, момент, после которого сервер обязан отклонить токен. Сравните его с текущим временем: если exp меньше, токен просрочен и ошибка 401 объясняется именно этим. Поле iat показывает момент выдачи, а nbf — время, раньше которого токен использовать нельзя.

Почему разбор падает с ошибкой на моём токене?

Чаще всего в строку попал лишний фрагмент: слово Bearer, кавычки из JSON-ответа, перенос строки посреди токена или обрезанный хвост из-за узкого поля в логах. Настоящий JWT — это ровно три части, разделённые двумя точками, без пробелов. Скопируйте его заново целиком и повторите.

Безопасно ли вставлять рабочий токен в онлайн-декодер?

Эта страница разбирает токен скриптом в вашей вкладке и никуда его не отправляет. Тем не менее живой access token — это действующий доступ к аккаунту: если он ещё не истёк, надёжнее сначала отозвать сессию или взять токен из тестового контура. Чужим сервисам с серверной обработкой такие строки отдавать не стоит.

Что означает alg none в заголовке?

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

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

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

Примеры

Токен из заголовка Authorization
До: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMDQyIiwicm9sZSI6ImFkbWluIiwiZXhwIjoxNzI1NjAwMDAwfQ.q7Xj0-signature
После: Header: {"alg":"HS256","typ":"JWT"} Payload: {"sub":"1042","role":"admin","exp":1725600000}