Токен с именем и сроком действия
Это токен, подписанный алгоритмом HS256 с секретом secret. В данных лежат sub, name, время выпуска iat и срок exp. Вставьте его, и вместо чисел вы увидите даты: 1762003600 — это 1 ноября 2025 года, 13:26:40 по UTC. Если ввести секрет secret, подпись будет верной.
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6ItCQ0L3QvdCwIiwiaWF0IjoxNzYyMDAwMDAwLCJleHAiOjE3NjIwMDM2MDB9.PmDjtytZgVisghmY7-WyncyX490QtocQf8C-33-HCS8
Токен прямо из заголовка Authorization
Скопируйте значение заголовка целиком, вместе с Authorization: Bearer. Лишнее мы уберём сами и скажем об этом строкой «Убрали «Bearer » перед токеном». То же с кавычками, пробелами и переносами строк, которые добавляют логи и мессенджеры.
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6ItCQ0L3QvdCwIiwiaWF0IjoxNzYyMDAwMDAwLCJleHAiOjE3NjIwMDM2MDB9.PmDjtytZgVisghmY7-WyncyX490QtocQf8C-33-HCS8
JWT (JSON Web Token) — строка из трёх частей, разделённых точками: заголовок, данные и подпись. Первые две части — это JSON, записанный в Base64url, поэтому прочитать их может любой, кому попал токен, и ключ для этого не нужен. Формат описан в RFC 7519, а структура подписанных токенов — в RFC 7515.
Вставьте токен, и мы разложим его на части. Заголовок покажет алгоритм подписи (alg) и тип токена (typ), у alg будет пояснение, например «HS256 — HMAC с SHA-256». В данных (payload) лежит то, ради чего токен выпускали: кто пользователь, какие у него права, кому адресован токен. Оба JSON показаны с подсветкой и кнопкой «Копировать».
Если данные токена не JSON, мы покажем их как текст и подпишем об этом. Если частей не три, а пять, это зашифрованный токен JWE: без ключа его содержимое не прочитать, и мы так и скажем. Расшифровать JWE этот инструмент не умеет.
В данных токена время записано числом секунд с 1 января 1970 года. Три поля встречаются чаще всего: exp — когда токен перестаёт действовать, iat — когда он выпущен, nbf — с какого момента его можно принимать. Глазами из числа 1762003600 дату не прочитать, поэтому мы собрали их в таблицу: «Действует до (exp)», «Выпущен (iat)», «Действует с (nbf)». Дата записана по местному времени с указанием часового пояса, а по наведению видно исходное число и время в UTC.
Сверху показывается статус. «JWT прочитан» — всё в порядке. «Токен истёк 3 дня назад» — срок exp прошёл, это самая частая причина ошибки jwt expired. «Токен ещё не действует» — нужно дождаться момента nbf. Рядом с датами в JSON мы добавляем комментарий справа, но сам текст JSON при копировании остаётся нетронутым.
Если вам нужно перевести другое число в дату или обратно, для этого есть конвертер Unix-времени.
Подпись нужна, чтобы убедиться, что токен выпущен тем, кто знает секрет или закрытый ключ, и не менялся по дороге. Сначала под результатом написано «Подпись не проверена»: разбор токена и проверка подписи — разные вещи. Введите ключ, и появится «Подпись верна» или «Подпись не совпадает: секрет или ключ другой, или токен изменён».
Для алгоритмов HS256, HS384 и HS512 нужен общий секрет. Если он записан в Base64, включите переключатель «Секрет в Base64». Для RS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384 и ES512 нужен открытый ключ в формате PEM (начинается с -----BEGIN PUBLIC KEY-----) или JWK. Для EdDSA с кривой Ed25519 — тоже открытый ключ, но не все браузеры умеют его проверять, и тогда мы напишем об этом.
Проверка идёт средствами браузера (WebCrypto), без сторонних библиотек и без сети. Секрет и ключ нигде не сохраняются, даже во вкладке, и исчезают при переходе в другой режим. Под полем так и написано: секрет не покидает браузер и не сохраняется.
Кроме ошибок, мы подсвечиваем рискованные признаки. Токен с alg: none вообще не подписан, и его может сочинить кто угодно (RFC 7519, раздел 6). Токен без exp действует бесконечно, пока не сменят ключ. Срок больше года — тоже повод насторожиться. А если время выпуска iat оказалось в будущем, скорее всего, часы сервера, который выпустил токен, спешат.
Это подсказки, а не вердикт. Токены без срока бывают у служебных интеграций, но об этом полезно знать, когда вы разбираете чужой токен.
Токен — это учётные данные. Вставлять живой токен в онлайн-сервис, который отправляет его на свой сервер, небезопасно: тот, кто получил токен, может действовать от имени пользователя, пока он не истёк. Здесь токен разбирается в вашем браузере, а токен и секрет никуда не отправляются: политика безопасности сайта разрешает запросы только на наш домен и в Яндекс Метрику для статистики. Это можно проверить во вкладке «Сеть» в инструментах разработчика.
Но есть и обратная сторона: данные токена не секретны. Если в них записаны паспорт, телефон или пароль, их увидит любой, кому попал токен.
Как расшифровать JWT токен
Вставьте токен в поле «Токен». Заголовок и данные — это JSON в Base64url, поэтому ключ для чтения не нужен: мы покажем их сразу. Ключ или секрет нужен только для проверки подписи.
Можно ли узнать секрет по токену
Нет. По токену можно прочитать заголовок и данные, но подбор секрета HS256 возможен только простым перебором и при слабом секрете. Поэтому секрет должен быть длинным и случайным.
Что значит jwt expired
Срок действия токена (поле exp) прошёл. Выпустите новый токен или обновите его по refresh-токену. Если токен свежий, проверьте часы на сервере и клиенте.
Чем JWT отличается от Bearer
JWT — формат токена, а Bearer — схема передачи в заголовке Authorization: Bearer токен. В Bearer можно передавать и не-JWT токены, а JWT можно передавать иначе.
Почему подпись не совпадает
Секрет или ключ другой, токен изменили после выпуска, либо секрет записан в Base64, а вы ввели его как есть. Попробуйте включить переключатель «Секрет в Base64».
Можно ли создать JWT здесь
Нет, этот инструмент только разбирает и проверяет токены. Он не создаёт и не подписывает их.
Куда уходят мои данные
Никуда. Всё обрабатывается в браузере, а запросы на чужие адреса запрещены заголовком безопасности. Сайт загружает только свои страницы и файлы — это легко проверить во вкладке «Сеть» в инструментах разработчика.