Основные выводы
- 01Декодируйте любой JWT и проверьте заголовок, нагрузку и стандартные утверждения в один клик.
- 02Утверждения exp, nbf и iat преобразуются в читаемые для человека временные метки с действительными/истёкшими тегами.
- 03Декодирование полностью локально — безопасно для вставления настоящих производственных токенов при отладке.
- 04Декодировщик не проверяет подписи — это должно происходить серверной стороной с ключом издателя.
Почему вам нужен декодировщик JWT
JSON Web Tokens выглядят как случайный шум до тех пор, пока вы не узнаете, что это три Base64URL-закодированных сегмента, разделённые точками. Первый сегмент — это заголовок (алгоритм и тип токена), второй — это нагрузка (утверждения: ID пользователя, роли, истечение), и третий — это подпись. При отладке проблемы аутентификации, истёкшей сессии или сломанной интеграции OAuth, первое, что вам нужно сделать, — это прочитать нагрузку.
Делать это вручную означает расщепление на точки, декодирование Base64URL и затем преобразование временных меток Unix в читаемые даты. Декодировщик JWT Handytool делает всё это автоматически и добавляет теги валидности на временные утверждения, так что вы можете видеть с первого взгляда, является ли токен ещё активным.
Как декодировать токен JWT
- 01
Скопируйте JWT
Возьмите токен из DevTools браузера (Application > Cookies или заголовок Authorization в Network панели), из файла логов или из клиента вашего API.
- 02
Вставьте его в декодировщик
Вставьте полный токен — включая все три сегмента, разделённые точками — в поле ввода. Декодировщик идентифицирует сегменты автоматически.
- 03
Прочитайте заголовок и нагрузку
Инструмент расщепляет токен и красиво-печатает заголовок (алгоритм, тип) и нагрузку (все утверждения) как форматированный JSON.
- 04
Проверьте временные утверждения
Unix временные метки exp (истечение), nbf (не раньше) и iat (выданы в) преобразуются в ISO даты. Декодировщик помечает exp как зелёный (действительный) или красный (истёкший) относительно вашего текущего локального времени.
Объяснены стандартные утверждения JWT
Эти зарегистрированные имена утверждений появляются в большинстве JWT.
- 01iss (Издатель) — идентифицирует, кто создал токен, обычно URL или имя сервиса.
- 02sub (Субъект) — главный, который токен представляет, обычно ID пользователя.
- 03aud (Аудитория) — предусмотренный получатель(и) токена; ваш сервер должен отклонить токены, предусмотренные для других.
- 04exp (Истечение) — Unix временная метка, после которой токен должен быть отклонён.
- 05nbf (Не раньше) — Unix временная метка, до которой токен должен быть отклонён.
- 06iat (Выданы в) — Unix временная метка, когда токен был создан; полезно для обнаружения устаревших токенов.
Безопасно вставлять настоящие токены при отладке
Декодирование JWT происходит полностью в вашем браузере, используя нативную функцию atob и JSON.parse. Ничто не передаётся ни на какой сервер — ваш токен декодируется в памяти и отображается локально. Вы можете безопасно вставлять настоящие токены доступа и токены сессии из окружающих сред разработки или подготовки для отладки потоков аутентификации.
Это сказав, обращайтесь с JWT как с паролями. Они предоставляют доступ к вашим системам на протяжении полного срока действия. Не вставляйте производственные токены от высокопривилегированных учётных записей ни в какой инструмент, если вы не уверены в гарантиях приватности инструмента — и всегда ротируйте токен, если вы верите, что он был раскрыт.
Часто задаваемые вопросы о декодировщике JWT
Что такое JWT?
JSON Web Token — это компактный, безопасный для URL формат, состоящий из трёх Base64URL сегментов (заголовок, нагрузка, подпись), разделённых точками. JWT несут утверждения — утверждения о пользователе или сессии — и используются для аутентификации, авторизации и доступа API.
Проверяет ли этот декодировщик подпись JWT?
Нет. Декодировщик только анализирует заголовок и нагрузку. Проверка подписи требует ключ секрета или открытый ключ издателя и должна происходить в коде вашего приложения, используя доверенную библиотеку.
Безопасно ли вставлять настоящий токен доступа сюда?
Декодирование полностью локально — токен никогда не передаётся. Однако JWT предоставляют настоящий доступ, так что обращайтесь с ними как с паролями. Не делитесь ими, не делайте коммит в контроль версии и ротируйте их, если они могли быть раскрыты.
Что означает утверждение exp?
exp — это временная метка истечения — целое число Unix, представляющее момент, когда токен перестаёт быть действительным. Декодировщик преобразует его в читаемую для человека ISO дату и помечает его действительным или истёкшим относительно вашего текущего локального времени.
Почему нагрузка JWT видна без ключа?
Нагрузки JWT закодированы в Base64URL, а не зашифрованы. Они разработаны для чтения — подпись только доказывает подлинность, а не конфиденциальность. Никогда не помещайте действительно секретные данные в нагрузку JWT, если вы не используете JSON Web Encryption (JWE).
Является ли декодировщик бесплатным?
Да. Handytool бесплатна без регистрации, без лимитов скорости и без сбора данных.