Декодер JWT
Вставьте JSON Web Token, чтобы прочитать его заголовок и полезную нагрузку; время истечения и выпуска показано в виде обычных дат.
Работает полностью в браузере
Подпись не проверена. Эта страница декодирует токен, но не проверяет его подлинность. Любой может создать токен с любым содержимым.
- Алгоритм
- -
- Тип
- -
- ID ключа
- -
- Части
- -
Время
| Claim | Ваш часовой пояс, затем UTC | Относительно |
|---|
Claims
| Claim | Значение | Содержимое |
|---|
Токены до 1 МБ. Только декодирование: подпись показывается, но не проверяется.
Как декодировать JWT
- Вставьте токен в поле. Начальное
Bearer, а также окружающие пробелы и кавычки игнорируются. - Прочитайте ниже заголовок и полезную нагрузку, а также время истечения, начала действия и выпуска в вашем часовом поясе и в UTC.
- Если нужно, скопируйте декодированную полезную нагрузку или заголовок в виде форматированного JSON.
Что внутри JSON Web Token
Подписанный JWT — это три фрагмента текста в Base64url, соединённые точками: заголовок, полезная нагрузка и подпись. Заголовок и полезная нагрузка — это просто JSON, записанный в Base64url, поэтому их может прочитать любой. Base64url — кодировка, а не шифрование, поэтому никогда не помещайте секреты в полезную нагрузку JWT, если токен не зашифрован.
Полезная нагрузка содержит claims. Некоторые имена зарегистрированы: iss (кто выпустил токен), sub (о ком он), aud (для кого предназначен), exp (когда истекает), nbf (не действителен до), iat (когда выпущен) и jti (уникальный идентификатор). Сервисы добавляют и собственные claims, например роли, области доступа (scopes) или адрес электронной почты.
Именно подпись делает claims заслуживающими доверия, а для её проверки нужен ключ подписи, который должен быть только у издателя и у сервисов, принимающих токен. Этот декодер намеренно ограничивается чтением: он показывает, что говорит токен и когда он истекает, а это обычно и нужно при отладке входа или вызова API.
Советы
- Перевести любое другое время Unix в дату можно в инструменте «Конвертер Unix-времени».
- Отформатировать или проверить большую полезную нагрузку поможет «Форматирование и проверка JSON».
- Декодировать отдельный фрагмент Base64url вручную можно в инструменте «Кодирование и декодирование Base64».
Вопросы и ответы
Проверяет ли этот инструмент подпись?
Нет. Эта страница только декодирует токен. Любой может создать токен с любым заголовком и полезной нагрузкой, поэтому показанное здесь содержимое — это заявления (claims), а не доказательство. Определить подлинность токена может только сервис, у которого есть ключ подписи (или открытый ключ для токенов RS256 и ES256), и он же должен проверить срок действия, аудиторию и издателя.
Безопасно ли вставлять сюда токен?
Эта страница никуда не отправляет токен: он декодируется кодом в вашем браузере и не сохраняется. И всё же действующий токен доступа — это пароль на всё время его действия. Не вставляйте рабочие токены ни на какие сайты и при отладке предпочитайте просроченные или тестовые токены.
Почему некоторые токены не читаются?
Токен из пяти частей вместо трёх — это зашифрованный JWT (JWE). Его заголовок читается, но полезная нагрузка зашифрована и читается только с ключом получателя, поэтому инструмент показывает заголовок и объясняет части. О других ошибках, например неверном числе частей или тексте, который не является корректным Base64url или JSON, сообщается с описанием проблемы.
Как вычисляется время?
Claims exp, nbf и iat — это NumericDate: секунды с 1 января 1970 года по UTC. Они показаны в часовом поясе вашего устройства и в UTC и сравниваются с часами вашего устройства, чтобы определить, истёк ли токен. Если ваши часы неверны, относительное время тоже будет неверным. Значение, похожее на миллисекунды, помечается, поскольку это частая ошибка.
Что означают alg, typ и kid?
alg — алгоритм подписи, например HS256 (общий секрет), RS256 или ES256 (пара ключей). typ обычно равен JWT. kid — идентификатор ключа, который использовал издатель; он подсказывает проверяющему, каким ключом проверять подпись. Токен с alg, равным none, не подписан и никогда не должен приниматься там, где это важно.