JWT декодер
Разбор JSON Web Token на header, payload и signature с расшифровкой claims. Плюс необязательная HMAC-верификация подписи прямо в браузере — секрет никуда не отправляется.
01
Декодер
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 из заголовка при валидации — жёстко фиксируйте набор допустимых.
Стандартные claimsRFC 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-механизм.