JWT-декодер

Вставте JSON Web Token, щоб прочитати його header і payload, дізнатися, коли він спливає, і розібратися в кожному claim. Токен не залишає ваш браузер.

Працює в браузеріБез реєстраціїНічого не завантажується

Декодування — це не перевірка. Header і payload JWT може прочитати будь-хто, адже вони лише закодовані в base64url. Інструмент показує, що токен стверджує, але не доводить його справжність. Завжди перевіряйте підпис на своєму сервері.

Заголовок

Payload


      

Перевірити підпис (необов'язково, HS256/HS384/HS512)

Перевіряє підпис HMAC із введеним вами секретом через Web Crypto API браузера. Секрет не залишає цю сторінку. Для токенів RSA/ECDSA потрібен відкритий ключ видавця, тут вони не перевіряються.

Як користуватися: JWT-декодер

  1. Вставте токен у поле Закодований токен. Префікс Bearer із заголовка Authorization ігнорується.
  2. Header і payload декодуються миттєво й показуються як відформатований JSON.
  3. Перегляньте таблицю Пояснення claims: exp, iat і nbf перетворюються на дати з позначками «спливає через» / «сплив … тому».
  4. Перевірте рядок стану на проблеми з терміном дії та попередження про ризиковані налаштування на кшталт alg: none.
  5. За бажанням введіть спільний секрет, щоб локально перевірити підпис HS256, HS384 або HS512.

Що всередині JWT?

JSON Web Token (RFC 7519) — це три рядки base64url, з'єднані крапками: header.payload.signature. Header вказує алгоритм підпису (alg) і тип токена. Payload містить claims: наприклад, хто користувач і коли спливає токен. Підпис обчислюється над першими двома частинами за допомогою секрету або закритого ключа.

Декодування — не перевірка

Header і payload лише закодовані, а не зашифровані, тому їх може прочитати будь-хто, хто має токен. Саме тому ніколи не кладіть паролі й секрети в payload JWT. Декодування показує, що токен каже. Перевірка підпису, зазвичай на вашому API-сервері з бібліотекою на кшталт jose або PyJWT, доводить, хто його випустив і що його не змінено. Сервер також має перевіряти exp, nbf, iss і aud та відхиляти неочікувані алгоритми.

Шпаргалка із зареєстрованих claims

ClaimЗначення
issIssuer: хто створив і підписав токен
subSubject: зазвичай ID користувача
audAudience: для якого API призначено токен
expЧас закінчення в секундах від початку епохи Unix
nbfНедійсний до цього моменту
iatЧас випуску
jtiУнікальний ID токена, корисний для списків відкликання

Налагодження помилок «token expired»

Якщо API відхиляє токен, що виглядає свіжим, порівняйте exp і nbf з годинником сервера. Невелика розбіжність годинників між машинами — звична річ, тому більшість бібліотек допускає запас 30–60 секунд. Також переконайтеся, що exp вказано в секундах: значення в мілісекундах — часта помилка, яка відсуває закінчення на тисячі років уперед.

Поширені запитання

Чи безпечно вставляти сюди продакшн-JWT?
Декодування повністю виконується в браузері на JavaScript. Токен не завантажується, не логується й не зберігається. Але, як і з будь-якими обліковими даними, поводьтеся з робочими токенами обережно й для скриншотів використовуйте прострочені або тестові.
Чи перевіряє інструмент підпис JWT?
Саме декодування — ні. За бажанням можна перевірити токени HS256, HS384 і HS512, ввівши спільний секрет; HMAC обчислюється локально через Web Crypto API. Токени RS256 і ES256 потрібно перевіряти відкритим ключем видавця на сервері.
Чому мій токен показано як прострочений?
Claim exp у минулому відносно годинника вашого комп'ютера. Запросіть новий токен або оновіть його за допомогою refresh token. Якщо час виглядає дивно, перевірте розбіжність годинників або значення exp, записане в мілісекундах.
Чим відрізняються JWT, JWS і JWE?
JWT — це формат claims. JWS — підписаний JWT із трьох частин, саме його декодує цей інструмент. JWE — зашифрований JWT із п'яти частин; його payload не можна прочитати без ключа розшифрування.
Чим небезпечний alg «none»?
Непідписаний токен може підробити будь-хто. Сервери мають відхиляти alg: none і приймати лише конкретний очікуваний алгоритм.

Схожі інструменти