Разбор заголовка и payload
Коротко об инструменте
JWT состоит из трёх частей, разделённых точками: заголовка, полезной нагрузки и подписи. Первые две — обычный JSON в кодировке base64url, поэтому их можно прочитать без ключа. Страница разбирает вставленный токен и раскладывает его на «Заголовок» и «Данные», где видно алгоритм подписи, идентификатор пользователя, роли и время жизни. Это диагностика, а не проверка: подпись здесь не сверяется, и валидность токена такой разбор не подтверждает. Смотрите также: раскодировать base64url-часть вручную, форматировать payload и проверить JSON, посчитать SHA-256 для проверки подписи.
Нет. Инструмент только раскодирует первые две части и показывает их как JSON. Для проверки подписи нужен секрет HMAC или публичный ключ RSA, а сверять его в браузере на чужой странице — плохая практика. Считайте разбор способом посмотреть содержимое: то, что payload читается, ничего не говорит о валидности токена.
Смотрите поле exp — это Unix-время в секундах, момент, после которого сервер обязан отклонить токен. Сравните его с текущим временем: если exp меньше, токен просрочен и ошибка 401 объясняется именно этим. Поле iat показывает момент выдачи, а nbf — время, раньше которого токен использовать нельзя.
Чаще всего в строку попал лишний фрагмент: слово Bearer, кавычки из JSON-ответа, перенос строки посреди токена или обрезанный хвост из-за узкого поля в логах. Настоящий JWT — это ровно три части, разделённые двумя точками, без пробелов. Скопируйте его заново целиком и повторите.
Эта страница разбирает токен скриптом в вашей вкладке и никуда его не отправляет. Тем не менее живой access token — это действующий доступ к аккаунту: если он ещё не истёк, надёжнее сначала отозвать сессию или взять токен из тестового контура. Чужим сервисам с серверной обработкой такие строки отдавать не стоит.
Значение none говорит, что подписи у токена нет вовсе. Исторически это источник известной уязвимости: сервер, принимающий такой алгоритм, позволяет подделать любой payload. Если вы встретили none в проде, это повод чинить проверку на бэкенде, а не особенность разбора.
Изменить текст можно, но собрать рабочий JWT — нет: подпись считается по секрету, которого у браузера нет, и сервер отклонит изменённый токен. Инструмент работает в одну сторону, на чтение. Для выпуска токенов используйте библиотеку на своей стороне.
До: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMDQyIiwicm9sZSI6ImFkbWluIiwiZXhwIjoxNzI1NjAwMDAwfQ.q7Xj0-signature
После: Header: {"alg":"HS256","typ":"JWT"} Payload: {"sub":"1042","role":"admin","exp":1725600000} Оценка и фидбек помогают понять, что улучшать дальше.