JWT декодер

Разбор JSON Web Token на header, payload и signature с расшифровкой claims. Плюс необязательная HMAC-верификация подписи прямо в браузере — секрет никуда не отправляется.

01Декодер02Claims03Проверка04О JWT05Вопросы06Похожие
01

Декодер

JWT токен
03

Проверка HMAC-подписи

04

О JSON Web Token

3 части, точка разделитель

Формат
header.payload.signature
JWT — Base64url-строка из трёх частей, разделённых точками. Header — алгоритм и тип. Payload — набор claims (данных). Signature — подпись header+payload секретом. Все три части — Base64url без padding, читаются глазами при желании.

Header и алгоритмы

alg
HS256, HS384, HS512 · RS256, ES256, none
HS* — симметричные, подпись общим секретом (HMAC-SHA). RS*/ES* — асимметричные, приватным ключом (RSA/ECDSA). alg: 'none' означает без подписи — принимать только для отладки, никогда в prod. Никогда не доверяйте alg из заголовка при валидации — жёстко фиксируйте набор допустимых.

Стандартные claims

RFC 7519
iss, sub, aud, exp, nbf, iat, jti
Reserved-поля из спецификации: iss (issuer), sub (subject), aud (audience), exp (expiration, Unix), nbf (not before), iat (issued at), jti (unique id). Приложение может добавлять любые свои claims (name, email, roles). Обычно короткие имена, чтобы токен не разрастался.

Что можно и нельзя

Безопасность
нет: пароль · да: id, роли, срок
JWT не шифрует, только подписывает — любой может прочитать payload. Не кладите пароли, номера карт, PII. Кладите user id, роли, срок действия. Секрет храните только на сервере. При компрометации — короткий срок жизни (exp) + refresh-механизм.
05

Частые вопросы

Вставьте токен — он разберётся на три части, а заголовок и полезная нагрузка покажутся отформатированным JSON. Стандартные поля подписаны по-русски, а значения времени переведены в обычные даты, поэтому сразу видно, когда токен выпущен, когда истекает и сколько ему осталось. Если частей не три, инструмент так и скажет, а не покажет пустой разбор.

Обновлено

«» добавлен в избранное