JWT декодер разделяет веб-токен JSON на три сегмента, разделенные по точкам, base64url-декодирует заголовок и полезную нагрузку и отображает оба формата JSON в формате. JWT не зашифрованы — «кодирование» — это просто base64url, обратимое преобразование — поэтому любой, кто держит токен, может читать все утверждения внутри него. Этот инструмент делает этот проверочный момент мгновенной: вставьте токен из заголовка set-cookie, заголовка авторизации (префикс предиателя автоматически удаляется) или панель инструментов вашего провайдера аутентификации и посмотрите, что именно там помещает ваш сервер.
Таблица претензий — это место, где действительно происходит отладка. Зарегистрированные требования времени — EXP (истечение), IAT (выпущено AT) и NBF (не раньше) — это метки времени UNIX, бесполезные для чтения в RAW. Декодер преобразует каждый в человеческую дату и относительное время ("Истек 3 часа назад", "Истек через 14 минут") и срок действия токенов с истекшим красным цветом. Большинство инцидентов с истекшим сроком действия, искаженным тактовой версией или утверждением AUD, которые не соответствуют тому, что API проверяет, — все это видно здесь за две секунды.
Одна вещь, которую этот инструмент намеренно не делает: проверка подписей. Для проверки требуется секрет подписи (HS256) или открытый ключ (RS256/ES256), а инструмент на стороне клиента, в котором вы просите вставить секрет HMAC, будет обучать вредным привычкам. Декодирование 100% на стороне клиента — токен никогда не покидает ваш браузер, не нажимает на сервер и не появляется ни в журнале запросов, что имеет значение, потому что JWT в реальном времени является учетной записью на носителя. У кого есть, это ты.
Переместите JWT во входную область. Возьмите его из заголовка авторизации на вкладке DevTools Network, в окне, localStorage или ответе Curl. Ведущий префикс «несолота» и окружающие пробелы автоматически удаляются, поэтому вы можете вставить полное значение заголовка без очистки.
Оба сегмента отображаются в виде форматированного JSON рядом. Заголовок сообщает вам алгоритм подписания (ALG: RS256, HS256 и т.д.) И ID ключа (KID) — полезно, когда ваша ротация JWK ведёт себя плохо. Полезная нагрузка содержит утверждения: SUB, ISS, AUD, области, роли и любые пользовательские данные, добавленные вами.
Заявки на время (EXP, IAT, NBF) декодируются из секунд в юнике в читаемые даты с относительной продолжительность. Просроченный EXP показывает красным цветом, с тем, как давно он прошел, допустимый зеленым цветом, а время оставалось. Если NBF будет в будущем — обычно тактовые перекосы между вашими серверами — токен будет отклонен, даже если он «выглядит» нормально.
Этот инструмент никогда не проверяет подпись — для которой требуется секретный или открытый ключ и принадлежит вашему серверу, а не в инструменте браузера. Никогда не рассматривайте декодированные заявления как надежные входные данные: злоумышленник может чеканить токен с любой полезной нагрузкой, которую он хочет. Только проверенная подпись доказывает, что претензии поступили от вашего эмитента без изменений.
Base64Url декодирование в чистом TypeScript — оба сегмента JSON отформатированы и читабельны сразу
Заявление о EXP отмечено красным по истечении срока действия, зеленый, когда действительны, с точным относительной относительной длительностью в любом случае
EXP, IAT и NBF преобразованы из необработанных секунд Unix в даты ISO и фразы «3 часа назад»
Вставьте весь заголовок авторизации — «Насыщенный» и «Отбивающий пробел» автоматически удаляются
Generate MD5, SHA-1, SHA-256, SHA-384, and SHA-512 hashes from any text
Encode and decode text to/from Base64 format
Convert between Unix timestamps and human-readable dates
Format, validate, and minify JSON data
0 comments
No comments yet. Be the first to share your thoughts!