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-время и декодер показывает их в читаемом формате.

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

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