Разработчика

Декодер JWT

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

Этот инструмент вам помог?

Что такое Декодер JWT?

JWT (JSON Web Token) — это стандартный способ представления claims аутентификации и авторизации в современных веб-API. Это компактный самодостаточный токен, состоящий из трёх частей — заголовка, описывающего алгоритм подписи, полезной нагрузки, содержащей сами claims (например, ID пользователя, роли и срок действия), и подписи, позволяющей принимающему серверу убедиться, что токен не был изменён. Этот декодер мгновенно считывает заголовок и полезную нагрузку, чтобы вы могли отлаживать проблемы аутентификации, проверять, какие claims на самом деле отправляет API, или узнавать, когда истекает срок действия токена — и всё это без бэкенда, консольных утилит или вставки конфиденциальных токенов на сторонний сервер, поскольку всё выполняется локально в вашем браузере.

Когда использовать этот калькулятор

  • Отладка причин, по которым API отклоняет токен, путём проверки его claims и времени истечения срока
  • Проверка времени истечения токена во время расследования обращения в поддержку или реагирования на инцидент
  • Проверка того, что провайдер SSO или OAuth выдаёт утверждения, которые ожидает ваше приложение.
  • Изучение структуры JWT для подготовки к собеседованиям или курсу по безопасности
  • Проверка токена, перехваченного из инструментов разработчика браузера или логов сервера, для понимания его содержимого
  • Сравнение алгоритма заголовка между токенами для отладки сбоев аутентификации из-за несовпадения алгоритмов

Шаги:

  1. Вставьте свой JWT в поле ввода или нажмите «Загрузить пример», чтобы попробовать готовый.
  2. Заголовок и полезная нагрузка декодируются автоматически по мере ввода.
  3. Просмотрите claims, такие как iss, sub, exp и iat, в удобочитаемом виде.
  4. Claims с временными метками (exp, iat, nbf) автоматически преобразуются в читаемые даты.

Формула

JWT = base64Url(header) + "." + base64Url(payload) + "." + base64Url(signature) Декодирование: разделить по ".", декодировать первые две части из base64Url, разобрать как JSON. Проверка (здесь не выполняется): HMACSHA256(base64Url(header) + "." + base64Url(payload), secret) === signature

Варианты использования

  • Отладка причин, по которым API отклоняет токен, путём проверки его claims
  • Проверка времени истечения токена во время расследования обращения в поддержку
  • Проверка того, что провайдер SSO или OAuth выдаёт ожидаемые claims
  • Изучение структуры JWT для подготовки к собеседованиям или учёбы
  • Быстрая проверка токена, скопированного из инструментов разработчика браузера или логов сервера

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

  • Мгновенно декодирует любой JWT без бэкенда или консольных утилит
  • Всё выполняется на стороне клиента — токены никогда не отправляются на сервер
  • Автоматически преобразует claims с временными метками в читаемые даты
  • Бесплатно, без регистрации, работает с любым JWT независимо от алгоритма

Советы профессионалов

  • Всегда сначала проверяйте 'exp' при отладке ошибки «неавторизован» — истёкший токен является самой частой причиной
  • Сверяйте 'alg' в заголовке с тем, что ожидает ваш бэкенд, чтобы выявлять ошибки несовпадения алгоритма
  • Никогда не доверяйте декодированной полезной нагрузке как доказательству личности без проверки подписи на сервере
  • Используйте короткоживущие токены вместе с refresh-токенами вместо долгоживущих JWT, чтобы ограничить последствия утечки

Распространенные ошибки

  • Считать, что декодированный JWT — это проверенный JWT: декодирование только читает содержимое, но не подтверждает подлинность
  • Хранить конфиденциальные данные (пароли, секреты) в полезной нагрузке, забывая, что её может прочитать кто угодно
  • Вставлять продакшн-токены в ненадёжные онлайн-декодеры
  • Путать 'exp' (истечение срока) с 'iat' (время выпуска) при отладке проблем со сроком жизни токена

Объяснение ключевых терминов

Claim: Сведения, утверждаемые о субъекте, например ID пользователя или роль
Header (заголовок): Первый сегмент JWT, указывающий алгоритм подписи и тип токена
Payload (полезная нагрузка): Второй сегмент JWT, содержащий сами claims
Signature (подпись): Третий сегмент JWT, используемый для проверки того, что токен не был изменён

Связанные понятия

Пример

Токен, начинающийся с eyJhbGciOiJIUzI1NiJ9, декодируется в заголовок {"alg":"HS256","typ":"JWT"} — это означает, что токен подписан алгоритмом HMAC-SHA256.

Интерпретация результатов

Декодер разделяет JWT по двум точкам и декодирует первые два сегмента в Base64URL. Заголовок сообщает алгоритм подписания (например, HS256 или RS256) и тип токена. Полезная нагрузка содержит фактические утверждения — идентификацию пользователя, разрешения и метки времени. Метки времени (exp, iat, nbf) автоматически преобразуются из эпохи Unix в читаемые даты. Если 'exp' показывает дату в прошлом, токен истёк, и большинство серверов отклонят его. Утверждение 'sub' (субъект) обычно содержит идентификатор пользователя, а 'iss' (эмитент) определяет сервер, создавший токен. Помните: декодирование — это не проверка. Раздел подписи отображается, но проверить его можно только с секретным или открытым ключом. Декодированная нагрузка носит лишь информационный характер — никогда не считайте её доказательством личности без проверки подписи на стороне сервера.

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

Что такое JWT?
JSON Web Token (JWT) — это компактный, безопасный для URL способ представления claims между двумя сторонами. Он состоит из трёх частей в кодировке Base64URL, разделённых точками: заголовка, полезной нагрузки и подписи.
Безопасно ли вставлять мой JWT в этот инструмент?
Декодирование происходит полностью в вашем браузере на JavaScript — токен никогда не отправляется ни на какой сервер. Тем не менее относитесь к JWT как к паролям: избегайте вставки токенов из продакшн-систем в любые онлайн-инструменты, включая этот.
Почему этот инструмент не может проверить подпись?
Для проверки подписи JWT требуется секретный ключ (для алгоритмов HMAC) или публичный ключ (для алгоритмов RSA/ECDSA), которым должен обладать только сервер-эмитент. Этот инструмент лишь декодирует читаемые заголовок и полезную нагрузку — у него никогда нет доступа к этому ключу.
Что означает claim 'exp'?
'exp' (Expiration Time) — это Unix-время, указывающее момент, когда токен перестаёт быть действительным. Инструмент автоматически преобразует его в читаемую дату, чтобы вы могли быстро проверить, истёк ли срок действия токена.
Что такое JWT?
JSON Web Token (JWT) — это компактный и безопасный для URL способ представления утверждений между двумя сторонами. Он состоит из трёх частей, закодированных в Base64URL и разделённых точками: заголовка, полезной нагрузки и подписи.
Безопасно ли вставлять мой JWT в этот инструмент?
Распространённые алгоритмы включают HS256 (HMAC-SHA256, симметричный), RS256 (RSA-SHA256, асимметричный) и ES256 (ECDSA). Поле 'alg' в заголовке задаёт алгоритм. Чаще всего для веб-API используются HS256 или RS256.
Почему этот инструмент не может проверить подпись?
'iat' (Issued At) — это время создания токена. 'nbf' (Not Before) — это время, с которого токен становится действительным. Если 'nbf' находится в будущем, токен следует отклонить, даже если он ещё не истёк.
Что означает claim 'exp'?
Заголовок и полезная нагрузка только закодированы в Base64URL, но не зашифрованы. Любой может их прочитать. Никогда не храните пароли, секреты или конфиденциальные личные данные в полезной нагрузке JWT. Включайте только нечувствительные утверждения, такие как ID пользователя, роли и метки времени.
Какие алгоритмы может использовать JWT?
Токены доступа обычно действуют 15–60 минут. Токены обновления действуют от нескольких часов до нескольких дней. Короткоживущие токены доступа в сочетании с долгоживущими токенами обновления обеспечивают баланс между безопасностью и удобством пользователя.
Как скопировать декодированные утверждения?
Токен обновления — это долгоживущий токен, используемый для получения новых токенов доступа без повторной аутентификации пользователя. Когда короткоживущий токен доступа истекает, клиент отправляет токен обновления, чтобы получить новый токен доступа.
Как скопировать декодированные утверждения?
Декодированные заголовок и полезная нагрузка отображаются в виде форматированного JSON. Вы можете скопировать весь декодированный вывод или отдельные значения утверждений для отладки или документирования.

Откройте больше инструментов

Свежая подборка из всей нашей библиотеки инструментов.