Перейти к содержимому
ToolMug

JWT-декодер

Вставьте JSON Web Token, чтобы увидеть его заголовок и полезную нагрузку, проверить, не истёк ли он, и проверить подпись секретом или открытым ключом. Всё работает локально, поэтому рабочие токены никогда не отправляются на сервер.

Работает в браузере — введённые данные никуда не загружаются

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

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

  1. Вставьте токен — с префиксом "Bearer " или без него. Три части выделяются разными цветами.
  2. Изучите декодированные заголовок и полезную нагрузку. Поля iat, nbf и exp показаны как даты с относительным временем.
  3. Чтобы проверить подпись, введите общий секрет для HS256/384/512 или вставьте открытый ключ (PEM или JWK) для токенов RS, PS, ES и EdDSA.
  4. При необходимости скопируйте декодированный JSON.

Описание параметров

Заголовок
Метаданные токена, обычно alg (алгоритм подписи) и typ. Поле kid указывает, каким ключом он подписан.
Полезная нагрузка
Поля (claims). К зарегистрированным относятся sub (субъект), iss (издатель), aud (получатель), iat (время выдачи), nbf (не ранее) и exp (истечение); все времена — в секундах Unix.
Подпись
Доказывает, что заголовок и полезная нагрузка не изменялись. Для проверки нужен секрет (HMAC) или открытый ключ издателя (RSA, ECDSA, EdDSA).
Секрет закодирован в Base64
Некоторые сервисы хранят HMAC-секреты в кодировке Base64. Отметьте этот флажок, если ваш секрет — в закодированном виде.

Основные поля (claims)

Поле Значение Пример
sub О ком токен (ID пользователя) "1234567890"
iss Кто его выдал "https://accounts.example.com"
aud Для кого он предназначен "my-api"
exp Время истечения, секунды Unix 1790427600
iat Время выдачи, секунды Unix 1790424000
nbf Недействителен до, секунды Unix 1790424000
jti Уникальный ID токена для защиты от повторного использования "a1b2c3"

Пример

Токен eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c декодируется в заголовок {"alg":"HS256","typ":"JWT"} и полезную нагрузку с полями sub, name и iat (18 января 2018 г.). С секретом your-256-bit-secret подпись проходит проверку.

Часто задаваемые вопросы

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

Токен декодируется JavaScript-кодом в вашем браузере, не загружается и не записывается в логи. И всё же обращайтесь с access-токенами как с паролями — любой, у кого есть действующий токен, может использовать его до истечения срока.

Доказывает ли декодирование, что JWT подлинный?

Нет. Заголовок и полезная нагрузка лишь закодированы в Base64URL, поэтому прочитать или подделать их может кто угодно. Только успешная проверка подписи правильным ключом показывает, что токен выдан ожидаемой стороной.

Почему проверка не проходит с правильным секретом?

Проверьте, не закодирован ли секрет в Base64, нет ли в конце пробела или перевода строки и совпадает ли алгоритм в заголовке с тем, что использует издатель. Любое изменение токена, даже в одном символе, тоже ломает подпись.

Что означает «alg none»?

Токен заявляет, что он не подписан. Серверы должны отклонять такие токены, если только явно их не ожидают; их принятие уже приводило к реальным обходам аутентификации.

Где взять открытый ключ для токенов RS256?

Провайдеры идентификации публикуют свои ключи в виде JWKS, обычно по адресу /.well-known/jwks.json. Скопируйте ключ, чей kid совпадает с заголовком токена, и вставьте его сюда как JWK.

Конфиденциальность

Этот инструмент работает полностью в браузере. Ваши файлы и текст обрабатываются на вашем устройстве и никогда не загружаются на наши серверы.

Похожие инструменты