zeytulaevr.ru

JWT Decoder

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

🔒

Приватность: Токен обрабатывается локально в браузере и никуда не отправляется — это особенно важно, если вы вставляете реальный токен из действующей сессии.

⚠

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

Header

{
  "alg": "HS256",
  "typ": "JWT"
}

Payload

{
  "sub": "1234567890",
  "name": "John Doe",
  "iat": 1516239022
}
iat — выдан18 янв. 2018 г., 01:30:22

Signature

SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

Подпись — бинарные данные в base64url, декодировать их в читаемый вид нельзя (это не JSON, а результат криптографической операции).

Как устроен JWT-токен

JSON Web Token состоит из трёх частей, разделённых точками: Header (заголовок с алгоритмом подписи и типом токена), Payload (полезная нагрузка — набор claims, то есть данных о пользователе или сессии) и Signature (подпись, подтверждающая, что токен не был изменён). Header и Payload закодированы в Base64URL и легко декодируются — это не шифрование, а просто кодирование, поэтому любой может прочитать содержимое токена, если у него есть сам токен.

Зачем декодировать JWT

Декодер полезен при отладке авторизации: чтобы посмотреть, какие claims реально пришли в токене от сервера, проверить срок действия (поля exp, iat, nbf) или убедиться, что нужный scope или роль действительно присутствуют в payload. Это избавляет от необходимости писать скрипт на коленке каждый раз, когда нужно заглянуть внутрь токена во время разработки.

Важно про безопасность

Декодирование не проверяет подлинность подписи токена — это лишь чтение содержимого. Токен обрабатывается полностью в браузере и никуда не отправляется, но всё равно не стоит вставлять в публичные инструменты токены из продакшн-систем: если у токена не истёк срок действия, он остаётся действительным средством авторизации до истечения exp или отзыва на сервере.

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

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

Нет, разбор Header, Payload и Signature происходит полностью в браузере с помощью JavaScript. Токен никуда не передаётся и не сохраняется.

Можно ли проверить подпись токена этим инструментом?

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

Что означают поля exp, iat и nbf?

exp — время истечения срока действия токена, iat — время выдачи токена, nbf — время, раньше которого токен не действителен. Все три поля хранятся как Unix-время и декодер показывает их в читаемом формате.

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

Технически да, поскольку обработка локальная и токен не передаётся третьим лицам. Но как общая практика безопасности не стоит без необходимости вставлять действующие токены из продакшена в сторонние инструменты.