Декодер JWT
Инструмент раскодирует токен JWT: показывает заголовок и данные в виде JSON, поясняет стандартные поля и переводит время выдачи и срок действия (iat, exp, nbf) в обычные даты. Сразу видно, истёк ли токен. Ошибки — обрезанный токен, недопустимый символ, не JSON внутри — подчёркиваются в поле. Пригодится при отладке входа на сайт, запросов к API и настройки авторизации.
Как пользоваться
Вставьте токен в поле — он раскодируется сразу. Можно вставить его вместе с префиксом Bearer из заголовка Authorization. Даты показываются в часовом поясе вашего браузера и в UTC.
Подпись не проверяется: для этого нужен ключ, которым сервер подписывал токен. Токен обрабатывается в браузере и не отправляется на сервер, но остаётся действующим, пока не истечёт, — не публикуйте его.
Для вашего удобства рекомендую использовать полноэкранный режим.
Токен
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6ItCQ0L3QvdCwIiwicm9sZSI6ImVkaXRvciIsImlhdCI6MTc2MDY4ODAwMCwiZXhwIjo0MTAyNDQ0ODAwfQ.c2lnbmF0dXJlLW5vdC12ZXJpZmllZA
Заголовок
Данные
Поля токена
| Поле | Значение | Пояснение |
|---|
Для декодирования включите JavaScript. JWT состоит из трёх частей через точку: заголовок и данные — JSON в base64url, третья часть — подпись.
Как устроен JWT
JWT (JSON Web Token) — строка из трёх частей, разделённых точками: заголовок.данные.подпись. Заголовок и данные — JSON-объекты, закодированные в base64url, поэтому их может прочитать кто угодно. Подпись подтверждает, что токен выдан сервером и не изменён: без ключа подделать её нельзя.
{ "alg": "HS256", "typ": "JWT" }{ "sub": "1234567890", "name": "Анна", "iat": 1760688000, "exp": 4102444800 }Стандартные поля
iss— кто выдал токен,sub— кому,aud— для какого сервиса он предназначен.iat— время выдачи,nbf— начало действия,exp— окончание. Время записано в секундах от 1 января 1970 года (UTC), а не в миллисекундах, какDate.now()в JavaScript.jti— уникальный идентификатор, по которому сервер может отозвать токен.
Остальные поля — name, role, email — добавляет сервер по своим правилам.
Что важно для безопасности
- Данные токена не зашифрованы: не храните в них пароли и другую секретную информацию.
- Сервер должен проверять подпись и срок действия при каждом запросе. Токен с
"alg": "none"не подписан, и принимать его нельзя. - Токен из пяти частей — зашифрованный JWE: без ключа доступен только его заголовок.
Вопросы и ответы
Почему подпись не проверяется?
Для проверки нужен секретный ключ (для HS256) или открытый ключ сервера (для RS256 и ES256). Инструмент предназначен для чтения токена; проверка подписи выполняется на сервере.
Как раскодировать JWT в JavaScript?
Возьмите вторую часть токена, замените - и _ на + и /, раскодируйте Base64 через UTF-8 и разберите JSON методом JSON.parse(). Читать данные так можно, но доверять им без проверки подписи на сервере нельзя.
Безопасно ли вставлять сюда рабочий токен?
Токен обрабатывается в вашем браузере и никуда не отправляется. Но не пересылайте его и не публикуйте: любой, у кого есть действующий токен, может выполнять запросы от вашего имени.
Связанные инструменты
Отдельные части токена и другие строки base64url раскодирует инструмент «Base64», а JSON из данных удобно сравнивать в «Сравнении JSON».