JWT декодер — читать header и payload локально (без проверки подписи)
Вставьте JWT, чтобы прочитать header и payload в JSON в браузере — без проверки подписи. Шаги: вставить токен, декодировать, скопировать header или payload. Пример: образец показывает alg HS256 и iat 1516239022 в UTC и локальном времени. Токен не загружается.
Как это работает
Вставьте полный JWT (header.payload.signature). Страница делит по точкам, декодирует Base64url первых двух сегментов и форматирует JSON. Числовые exp, iat, nbf показывают UTC и локальное время. Сегмент подписи — только сырой текст, без проверки.
Правила, которые стоит знать
Что делает и не делает этот декодер: структура, Base64url, зарегистрированные claims и граница без проверки.
- Структура: подписанный JWT (компактный JWS) — три сегмента Base64url: header (alg, typ), payload (claims), signature (байты, не JSON).
- Base64url: -→+, _→/, дополнение padding до длины %4, затем atob и JSON.parse. Ошибки указывают header или payload.
- Зарегистрированные claims: exp, iat, nbf — секунды Unix UTC. Прочитать JSON ≠ доверять токену.
- Конфиденциальность: вставка локальна; без HMAC/RSA. Не авторизуйте в проде только по декодированному JSON.
Пример
Ввод: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9eIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c → Header: {"alg":"HS256","typ":"JWT"}. Payload: {"sub":"1234567890","name":"John Doe","iat":1516239022} с iat в UTC и локальном времени. Подпись показана как есть — не проверена.
Когда подходит
- Отладка OAuth: проверьте sub, scope и exp access token перед настройкой API.
- API-контракты: сверьте iss и aud ID token с документацией.
- Обучение: как header, payload и signature составляют три сегмента JWS.
Frequently asked questions
Проверяет ли страница подпись JWT?
Нет. Декодирование лишь раскрывает Base64url в header и payload; проверка подписи требует ключ издателя — здесь намеренно не реализована.
Почему ошибка числа сегментов?
Убедитесь, что вставлен полный токен с двумя точками и тремя сегментами. Лишние точки, обрезанная вставка или не-JWT строка дадут ошибку.
Чем Base64url отличается от обычного Base64?
JWT использует Base64url: - вместо +, _ вместо /, часто без =. Обычный Base64 может ошибиться на URL-safe токенах.
Как читать exp, iat или nbf?
exp, iat и nbf — секунды Unix UTC. Страница показывает UTC и ваше локальное время; сравните exp с текущим моментом для срока действия.
Загружается ли токен на сервер?
Нет. Разбиение, Base64url и JSON выполняются только во вкладке браузера.
Вопросы и отзывы
Что-то неясно, сломано или отсутствует? Напишите сообщение ниже — мы читаем каждую заметку об этих инструментах.