Разбор JWT
Header и payload токена JWT, срок действия и проверка подписи секретом или ключом.
Результат появится здесь
Результат появится здесь
Результат появится здесь
Результат появится здесь
Считается в браузере, на сервер ничего не уходит
В терминале Linux
TOKEN='eyJhbGciOi…'
cut -d. -f2 <<< "$TOKEN" | tr _- /+ | base64 -d | jq .
# payload
date -d @1893456000
# exp — в дату
curl -H "Authorization: Bearer $TOKEN" example.com/me
# запрос с токеном
base64 -d ругается на недостающие = в конце — вывод всё равно верный.
УчтиPayload JWT не зашифрован: его прочитает любой, у кого есть токен, — не клади туда пароли и секреты.
Что внутри JWT
Три части через точку: header, payload и подпись. Первые две — JSON в base64url: их прочитает
любой, у кого есть токен, поэтому пароли и персональные данные туда не кладут. Время в exp,
iat и nbf — в секундах Unix.
Частые вопросы
Почему токен «истёк», хотя сервер его принимает?
Время сравнивается с часами твоего компьютера, а сервер обычно даёт запас в несколько минут. exp
из 13 цифр — это миллисекунды, ошибка выпуска токена.
Что значит «подпись не совпадает»?
Токен подписан другим ключом или изменён. Для HS256 проверь секрет: лишний пробел, перевод строки или секрет в Base64 — тогда включи «Секрет в Base64».
Чем HS256 отличается от RS256?
HS256 подписывает и проверяет один общий секрет. RS256 и ES256 подписывают закрытым ключом, а проверяют открытым, который можно раздать всем.