Декодер JWT
Бесплатный декодер JWT для чтения любого JSON Web Token. Вставьте токен — и увидите его заголовок, полезную нагрузку и подпись, объяснение каждого стандартного клейма и то, истёк ли он. Декодирование целиком происходит в вашем браузере: токен никуда не отправляется.
Декодер JWT
Вставьте JSON Web Token ниже. Он декодируется в браузере по мере ввода, и ничего не загружается и не сохраняется.
Вставьте токен выше, чтобы его декодировать.
Пока ничего не декодировано.
Токен декодируется локально на JavaScript. Он никогда не отправляется на сервер, не попадает в логи и не сохраняется — даже в хранилище браузера.
Стандартные клеймы с объяснениями
JSON Web Token упаковывает в одну строку три части, закодированные в Base64url: заголовок, где указано, как токен подписан, полезную нагрузку с клеймами о пользователе и сессии, и подпись. Первые две закодированы, а не зашифрованы, поэтому любой, у кого есть токен, может их прочитать. Этот декодер показывает, что именно в них лежит.
Главные преимущества
Типичные сценарии
Как этим пользоваться
- 1.Вставьте токен. Вставьте токен целиком, с обеими точками. Префикс «Bearer » убирается автоматически.
- 2.Прочитайте панель состояния. Там видны алгоритм подписи, идентификатор ключа, если он есть, и истёк ли токен.
- 3.Просмотрите клеймы. Сначала идут стандартные клеймы, метки времени переведены в настоящие даты; дальше — произвольные.
- 4.Скопируйте нужное. У заголовка и полезной нагрузки есть кнопки копирования — для тикета или теста.
Стандартные клеймы с объяснениями
В большинстве токенов есть несколько зарегистрированных клеймов. Вот те, что встречаются чаще всего, и для чего каждый из них на самом деле нужен.
Ключевые возможности
- Декодирует заголовок, нагрузку и подпись по отдельности
- Переводит exp, nbf и iat в читаемые даты и относительное время
- Отмечает истёкший токен, ещё не действительный токен и alg: none
- Объясняет каждый зарегистрированный клейм рядом с его значением
- Кнопки копирования для декодированных заголовка и нагрузки
- Работает без сети, как только страница загрузилась
- Без аккаунта, без загрузки на сервер, без хранения
Декодировать — не значит проверить
Это самое важное, что нужно понимать про любой декодер JWT, включая этот. Декодирование читает Base64url и показывает JSON. Оно ничего не доказывает о подлинности токена. Любой может собрать токен, где написано "role":"admin", и он прекрасно здесь раскодируется.
Подлинность токена доказывает только проверка подписи ключом издателя, и ей место на вашем сервере, а не во вкладке браузера. Считайте то, что видите здесь, отладочной сводкой, а не доказательством. И поскольку нагрузка всего лишь закодирована, никогда не кладите в неё секреты: JWT может прочитать любой, у кого он есть. Подробный разбор — клеймы, из-за которых чаще всего приходит 401, путаница с алгоритмами и почему JWT нельзя отозвать — в нашем руководстве по разбору и отладке JSON Web Token.
Частые вопросы
Что такое JWT?⌄
JSON Web Token — это компактная строка, безопасная для URL, из трёх частей в кодировке Base64url, разделённых точками: заголовок с алгоритмом подписи, полезная нагрузка с клеймами и подпись. Чаще всего он используется как токен доступа или токен идентификации после входа.
Безопасно ли декодировать JWT здесь?⌄
Декодирование целиком происходит в вашем браузере на JavaScript. Токен никогда не отправляется на наши серверы, не попадает в логи и не записывается в хранилище браузера. Но учтите: до истечения срока токен — действующий доступ, поэтому обращайтесь с ним как с паролем везде, куда вставляете.
Проверяется ли подпись?⌄
Нет, и ни один браузерный инструмент не должен этого делать. Для проверки нужен секретный или открытый ключ издателя, а его место — на вашем сервере. Декодирование показывает лишь то, что написано в токене, и не скажет, подлинный он или изменённый.
Почему мой токен показан как истёкший?⌄
Клейм exp — это метка Unix в секундах, и с этого момента токен недействителен. Панель состояния переводит её в настоящую дату и говорит, сколько времени прошло. Частая причина неожиданного истечения — сбитые часы на сервере.
Можно ли декодировать токен без секрета?⌄
Да. Заголовок и нагрузка закодированы, а не зашифрованы, поэтому их прочитает любой, у кого есть токен. Секрет нужен только для проверки подписи, а не для чтения содержимого — именно поэтому в нагрузку нельзя класть чувствительные данные.