JWT-декодер
Вставьте JSON Web Token, чтобы прочитать его header и payload, узнать, когда он истекает, и разобраться в каждом claim. Токен не покидает ваш браузер.
Работает в браузереБез регистрацииНичего не загружается
Декодирование — это не проверка. Заголовок и payload JWT может прочитать кто угодно: они лишь закодированы в base64url. Инструмент показывает, что токен заявляет, но не доказывает его подлинность. Всегда проверяйте подпись на своём сервере.
Заголовок
Payload
Расшифровка claims
Проверить подпись (необязательно, HS256/HS384/HS512)
Проверяет подпись HMAC с введённым вами секретом через Web Crypto API браузера. Секрет не покидает эту страницу. Для токенов RSA/ECDSA нужен открытый ключ издателя, здесь они не проверяются.
Как пользоваться: JWT-декодер
- Вставьте токен в поле Закодированный токен. Префикс
Bearerиз заголовка Authorization игнорируется. - Header и payload декодируются мгновенно и выводятся как отформатированный JSON.
- Изучите таблицу Расшифровка claims:
exp,iatиnbfпреобразуются в даты с пометками «истекает через» / «истёк … назад». - Проверьте строку состояния на проблемы со сроком действия и предупреждения о рискованных настройках вроде
alg: none. - При желании введите общий секрет, чтобы локально проверить подпись HS256, HS384 или HS512.
Что внутри JWT?
JSON Web Token (RFC 7519) — это три строки base64url, соединённые точками: header.payload.signature. Header указывает алгоритм подписи (alg) и тип токена. Payload содержит claims: например, кто пользователь и когда истекает токен. Подпись вычисляется над первыми двумя частями с помощью секрета или закрытого ключа.
Декодирование — не проверка
Header и payload лишь закодированы, а не зашифрованы, поэтому их может прочитать любой, у кого есть токен. Именно поэтому никогда не кладите пароли и секреты в payload JWT. Декодирование показывает, что токен говорит. Проверка подписи, обычно на вашем API-сервере с библиотекой вроде jose или PyJWT, доказывает, кто его выпустил и что он не изменён. Сервер также должен проверять exp, nbf, iss и aud и отклонять неожиданные алгоритмы.
Шпаргалка по зарегистрированным claims
| Claim | Значение |
|---|---|
iss | Issuer: кто создал и подписал токен |
sub | Subject: обычно ID пользователя |
aud | Audience: для какого API предназначен токен |
exp | Время истечения в секундах с начала эпохи Unix |
nbf | Недействителен до этого момента |
iat | Время выпуска |
jti | Уникальный ID токена, полезен для списков отзыва |
Отладка ошибок «token expired»
Если API отклоняет токен, который выглядит свежим, сравните exp и nbf с часами сервера. Небольшое расхождение часов между машинами — обычное дело, поэтому большинство библиотек допускают запас в 30–60 секунд. Также убедитесь, что exp указан в секундах: значение в миллисекундах — частая ошибка, которая отодвигает истечение на тысячи лет вперёд.
Часто задаваемые вопросы
Безопасно ли вставлять сюда продакшен-JWT?
Проверяет ли инструмент подпись JWT?
Почему мой токен показан как истёкший?
exp находится в прошлом относительно часов вашего компьютера. Запросите новый токен или обновите его с помощью refresh token. Если время выглядит странно, проверьте расхождение часов или значение exp, записанное в миллисекундах.Чем отличаются JWT, JWS и JWE?
Чем опасен alg «none»?
alg: none и принимать только конкретный ожидаемый алгоритм.