Бесплатные инструменты

Декодер JWT

Локально разделяет JWT и декодирует его заголовок и полезную нагрузку через base64url, с читаемыми временными claim-ами и без проверки подписи.

Для чего нужен декодер JWT

JSON Web Token — это компактное удостоверение, которое передаётся в заголовке Authorization: Bearer бесчисленного множества API, и когда с аутентификацией что-то не так, первый вопрос всегда звучит так: «что же на самом деле находится внутри этого токена?» Этот инструмент разбивает JWT на части, декодирует его заголовок и полезную нагрузку из base64url в читаемый JSON и превращает числовые метки времени в понятные даты — и всё это внутри вашего браузера. Обратитесь к нему, когда запрос отклоняется как неавторизованный, когда нужно подтвердить, какого пользователя или какие разрешения (scopes) несёт токен, когда вы проверяете время истечения срока действия или когда просто хотите понять токен, который вам кто-то передал, не вставляя живое удостоверение в случайный сайт.

Как устроен JWT

Подписанный JWT состоит из трёх сегментов base64url, соединённых точками, в форме header.payload.signature. Заголовок (header) — это небольшой объект JSON, который называет алгоритм подписи, например HS256 или RS256, и тип токена. Полезная нагрузка (payload) — это объект JSON с утверждениями (claims): к стандартным относятся iss (издатель), sub (субъект), aud (аудитория), exp (истечение срока), iat (время выпуска) и nbf (не ранее чем), наряду с любыми пользовательскими полями, которые добавил издатель. Подпись (signature) вычисляется над первыми двумя сегментами с помощью алгоритма, объявленного в заголовке, и именно она позволяет серверу доказать, что токен не изменяли при передаче.

Base64url — это URL-безопасный родственник обычного Base64: он подставляет - и _ вместо + и / и обычно отбрасывает дополнение =, так что токен может путешествовать в заголовках и ссылках без изменений. Этот инструмент выполняет обратное декодирование заголовка и полезной нагрузки, форматирует полученный JSON для удобного чтения и преобразует значения exp, iat и nbf — которые являются метками времени Unix, отсчитываемыми в секундах — в читаемые даты, так что вы с первого взгляда видите, действует ли ещё токен. Поле алгоритма также подсказывает, как именно будет проверяться токен: HS256 — это симметричный HMAC на основе общего секрета, тогда как RS256 и ES256 являются асимметричными, где любой может проверить токен с помощью открытого ключа, но подписать его закрытым может только издатель.

Конкретные примеры и сценарии использования

  • Отладка ответа 401: декодируйте токен и проверьте, не истёк ли уже exp — большинство «просроченных» ошибок на самом деле вызваны сбоем часов или часового пояса.
  • Подтверждение авторизации: прочитайте утверждение scope или ролей, чтобы убедиться, что токен предоставляет именно то, что действительно требует конечная точка.
  • Проверка идентичности: изучите sub и iss, чтобы подтвердить, что токен был выдан правильному субъекту правильным центром.
  • Обнаружение ловушки alg: none: токен, который утверждает, что алгоритма нет вовсе, любой корректный верификатор должен отклонить безоговорочно.

Критическая оговорка: декодирование — это не проверка

Это самый важный подводный камень. Полезная нагрузка JWT только закодирована, а не зашифрована, так что любой, у кого есть токен, может прочитать каждое утверждение в нём — никогда не помещайте пароль или настоящий секрет в нагрузку и относитесь ко всему токену как к удостоверению предъявителя, которое следует защищать и при передаче, и в состоянии покоя. Не менее важно: этот инструмент декодирует токен; он не проверяет подпись. Читаемая нагрузка ничего не говорит о том, подлинный ли токен, ведь любой может вручную сфабриковать поддельный JWT с любыми утверждениями на свой вкус. Только сервер-издатель, владеющий секретом или открытым ключом, может проверить подпись и подтвердить, что токену можно доверять, и эта проверка всегда должна происходить на стороне сервера при каждом запросе.

Всё остаётся на вашем устройстве

Декодирование происходит полностью в вашем браузере: токен, который вы вставляете, никогда не передаётся, никогда не загружается и никогда не журналируется. Это именно то поведение, которого вы хотите от инструмента для JWT, ведь настоящий токен — это живой ключ к учётной записи; вставка его в серверный декодер означала бы передать ваше удостоверение незнакомцу. Выполнение работы локально полностью устраняет этот риск и позволяет инструменту работать даже с выключенным соединением. Наша собственная платформа использует подписанные сеансовые токены для аутентификации, а документация для разработчиков объясняет, как они выпускаются и как ваша интеграция должна безопасно предъявлять и обновлять их.

Эту страницу нашли по запросу

Реальные поисковые фразы, на которые отвечает эта страница — по ссылкам откроются материалы, раскрывающие тему глубже.