Декодер JWT
Декодируйте любой JSON Web Token в браузере: header и payload, exp, iat и nbf в виде настоящих дат в вашем часовом поясе и истёк ли токен.
Сводка
Заголовок (header)
Payload (claims)
Токен и подпись
Читайте любой JWT, никуда его не отправляя
Вставьте JSON Web Token, и декодер разделит его на три части: заголовок (каким алгоритмом он подписан), payload (claims: кто пользователь, к чему у него доступ и когда истекает токен) и подпись. JSON форматируется, чтобы его можно было прочитать с одного взгляда.
Временные claims превращаются в настоящие даты. exp, iat и nbf показываются в вашем часовом поясе, в UTC и в виде «через 20 минут» или «3 дня назад», а статус сразу говорит, действует ли токен, истёк или ещё не вступил в силу.
Токены часто открывают доступ к настоящим аккаунтам, поэтому всё декодируется в вашем браузере. Токен никогда не загружается на наш сервер, не логируется и не хранится — это безопаснее, чем вставлять его в чат-бот или на сайт, который отправляет его на сервер.
Как декодировать JWT
- Скопируйте токен из приложения, заголовка
Authorization, cookie или инструментов разработчика в браузере. - Вставьте его в поле. Префикс
Bearer, кавычки, пробелы и переносы строк удаляются автоматически. - Посмотрите сводку: статус, алгоритм, издателя, субъекта, аудиторию и точное время выдачи и истечения.
- Кнопками копирования перенесите отформатированный JSON заголовка или payload в баг-репорт или свои заметки.
Что означают основные claims
exp(expiration time): после этого момента токен нужно отклонять.iat(issued at): когда токен был создан.nbf(not before): до этого момента токен принимать нельзя.iss(issuer): кто выпустил токен, часто URL вашего сервера авторизации.sub(subject): о ком токен, обычно ID пользователя.aud(audience): приложение или API, для которых предназначен токен.algиkid(в заголовке): алгоритм подписи, например HS256 или RS256, и ID ключа, которым токен подписан.
Даты в JWT — это значения NumericDate: число секунд с 1 января 1970 года UTC. Декодер сам переводит их в даты, так что отдельный конвертер timestamp не нужен.
Советы по отладке
- Если API отвечает 401 сразу после входа, сначала проверьте
expиnbf. Часы сервера, которые спешат или отстают на несколько минут, — частая причина; большинство библиотек допускают небольшой запас. - Дата через десятки тысяч лет означает, что значение записано в миллисекундах вместо секунд. Декодер предупредит об этом.
- Сравните
audиissс тем, что ожидает ваш API. Токен, выданный для другого приложения или окружения (staging вместо продакшена), — частая причина ошибок «неверный токен». - Заголовок с
alg, равнымnone, означает, что токен не подписан. Никогда не принимайте такие токены в продакшене.
Ограничения и что важно знать
- Декодировать — не значит проверить. Любой может создать токен с любыми claims; подлинность доказывает только проверка подписи правильным ключом на вашем сервере. Этот инструмент подписи не проверяет.
- Payload обычного JWT только закодирован, а не зашифрован. Его может прочитать любой, у кого есть токен, поэтому никогда не храните в claims пароли и секреты.
- Зашифрованные токены (JWE, пять частей) нельзя прочитать без ключа, поэтому показывается только их заголовок.
- Числа показываются ровно так, как они записаны в токене, поэтому длинные числовые ID никогда не округляются.
Частые вопросы
Безопасно ли вставлять сюда настоящий токен?
Да. Декодирование выполняется на JavaScript в вашем браузере, и токен никогда не отправляется на наш сервер. И всё же относитесь к действующим токенам как к паролям: не делитесь ими на скриншотах и в чатах и дайте им истечь.
Может ли инструмент сказать, действителен ли токен?
Он показывает по датам, истёк ли токен или ещё не вступил в силу. Подлинность подписи он определить не может: для этого нужен секретный или публичный ключ, который должен быть только у вашего сервера.
Почему токен показан как истёкший, хотя я только что его получил?
Проверьте часы сервера, который его выдал, и убедитесь, что exp указан в секундах, а не в миллисекундах. Если iat тоже на несколько часов в прошлом, часы сервера, скорее всего, идут неправильно.
Чем декодер JWT отличается от декодера Base64?
JWT — это три части в кодировке Base64URL, соединённые точками. Декодер Base64 читает по одной части, а декодер JWT сам разделяет токен, понимает URL-безопасный алфавит и отсутствие дополнения и превращает даты в понятное время.
Работает ли он офлайн?
Да. После загрузки страницы можно отключиться от интернета и продолжать декодировать токены.
Похожие инструменты
- Base64 декодер: Мгновенно раскодируйте строку Base64 обратно в читаемый текст. Разбирайте заголовки авторизации, токены, ответы API и письма. Бесплатный Base64 декодер.
- JSON валидатор и форматтер: Проверьте JSON онлайн и сделайте его читаемым. Найдите синтаксические ошибки и превратите минифицированный JSON в код с отступами. Бесплатно.
- URL-декодер: Раскодируйте ссылки и query string с percent-encoding обратно в читаемый текст. Превратите %20, %26 и %D0%BA в обычные символы. Бесплатный URL-декодер.
- Base64 кодировщик: Мгновенно закодируйте любой текст или строку в Base64. Удобно для data URI, заголовков HTTP Basic auth, почты и API. Бесплатный Base64 кодировщик.
Аналогичные инструменты
Мгновенно раскодируйте строку Base64 обратно в читаемый текст. Разбирайте заголовки авторизации, токены, ответы API и письма. Бесплатный Base64 декодер.
Проверьте JSON онлайн и сделайте его читаемым. Найдите синтаксические ошибки и превратите минифицированный JSON в код с отступами. Бесплатно.
Раскодируйте ссылки и query string с percent-encoding обратно в читаемый текст. Превратите %20, %26 и %D0%BA в обычные символы. Бесплатный URL-декодер.
Популярные бесплатные инструменты
Создайте надёжный случайный пароль в один клик. Выберите длину, заглавные и строчные буквы, цифры и символы. Бесплатно и без регистрации.
Измените регистр текста: ВЕРХНИЙ, нижний, как в предложении, С Заглавных, camelCase, PascalCase, snake_case, CONSTANT_CASE, dot.case, param-case.
Извлеките все адреса электронной почты из текста, HTML, логов или документов в один клик и получите чистый список с подсчётом. Бесплатно.
Проверьте DNS-записи любого домена: A, AAAA, CNAME, MX, NS, TXT и SOA. Проверьте настройки почты, SPF, верификации и NS-серверов бесплатно.
Меняйте разделители в тексте: переносы строк, пробелы, точки с запятой, дефисы, вертикальные черты и точки. Столбец в строку и обратно. Бесплатно.
Создайте ссылку на чат WhatsApp с вашим номером и готовым сообщением. Добавьте её на сайт, в био, рекламу или QR-код. Бесплатный генератор wa.me.