Декодер JWT онлайн — просмотр заголовка и данных токена
Декодирование заголовка и payload JWT и проверка срока действия (без проверки подписи)
Работает в браузере · файлы никуда не загружаются
Инструмент только декодирует токен. Подпись НЕ проверяется, поэтому читаемость токена не означает, что он действителен или ему можно доверять. Данные не покидают ваш браузер.
Что это
JWT (JSON Web Token) содержит утверждения (claims), например о том, кто пользователь. Он состоит из трёх частей, разделённых точками: заголовок (header), полезная нагрузка (payload) и подпись (signature). Первые две — это JSON в кодировке base64url, поэтому прочитать их может кто угодно. Инструмент раскладывает токен и аккуратно показывает содержимое, но подпись не проверяет.
Как пользоваться
- Вставьте токен в поле ввода. Префикс
Bearerи переносы строк игнорируются. - Заголовок и полезная нагрузка отображаются как JSON с отступами, у каждой части своя кнопка копирования.
- Если в payload есть exp, iat или nbf, они показываются как понятные даты с указанием, сколько осталось или прошло («через 3 часа», «2 дня назад»), и отмечается статус срока действия.
- Если токен повреждён, сообщение об ошибке укажет, какая часть неверна. Про зашифрованный токен из пяти частей (JWE) сообщается, что без ключа его не прочитать.
Как это работает
- Структура соответствует RFC 7519 (JWT) и RFC 7515 (JWS): ровно три части через точку.
- Каждая часть декодируется из base64url по RFC 4648 (
-и_, выравнивание необязательно) и читается как UTF-8. - Заголовок и payload должны быть JSON-объектами; массив или строка считаются ошибкой.
- exp, iat и nbf интерпретируются как секунды, только если это числа, и показываются в формате вашей локали и в ISO 8601 (UTC).
- Статус срока действия лишь сравнивает текущее время с exp и nbf. Подпись не проверяется, поэтому токены с alg none или неверной подписью декодируются точно так же.
Примеры
| Часть | Содержимое |
|---|---|
| Начало токена | eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 |
| header | {"alg": "HS256", "typ": "JWT"} |
| payload | {"sub": "1234567890", "name": "John Doe", "iat": 1516239022} |
| iat | 2018-01-18T01:30:22Z |
Это обычный учебный токен из вводных статей о JWT. Токен с payload {"name": "Иван Петров"} тоже декодируется без искажений.
Частые вопросы
Проверяет ли инструмент подпись JWT?
Нет, он только декодирует. То, что токен читается, не значит, что он подлинный или действительный. Доверять ли ему, решается проверкой подписи секретом или открытым ключом на вашем сервере.
Безопасно ли вставлять сюда токен?
Декодирование происходит только в браузере, токен никуда не передаётся. Тем не менее не вставляйте действующие боевые токены на общих экранах и в документах.
Корректно ли отображается кириллица в payload?
Да. JWT — это JSON в UTF-8, закодированный base64url, и инструмент декодирует его как UTF-8, поэтому кириллические, китайские и другие имена, а также эмодзи отображаются без искажений.
Что за время в поле exp?
Это NumericDate — число секунд с 1 января 1970 года UTC. Инструмент показывает его на языке и в часовом поясе вашего браузера, а также в формате UTC ISO 8601.