Розробника

Декодер JWT

Вставте будь-який JWT, щоб миттєво розшифрувати його заголовок і корисне навантаження — перевіряйте claims, час дії токена та підпис, не виходячи з браузера і не надсилаючи дані нікуди.

Цей інструмент вам допоміг?

Що таке Декодер JWT?

JWT (JSON Web Token) — це стандартний спосіб, у який сучасні веб-API представляють твердження автентифікації та авторизації. Це компактний, самодостатній токен, що складається з трьох частин — заголовка з описом алгоритму підпису, корисного навантаження з фактичними твердженнями (такими як ідентифікатор користувача, ролі та термін дії) і підпису, який дозволяє серверу-отримувачу переконатися, що токен не було змінено. Цей декодер миттєво зчитує заголовок і корисне навантаження, щоб ви могли налагоджувати проблеми автентифікації, перевіряти, які твердження фактично надсилає API, або дізнатися, коли закінчується термін дії токена — і все це без потреби в бекенді, інструменті командного рядка або вставленні чутливих токенів на сторонній сервер, оскільки все працює локально у вашому браузері.

Коли використовувати цей калькулятор

  • Налагодження причини, чому API відхиляє токен, шляхом перевірки його claims та часу дії
  • Перевірка часу дії токена під час розслідування звернення в службу підтримки або реагування на інциденти
  • Перевірка того, що провайдер SSO або OAuth видає твердження, які очікує ваш застосунок.
  • Вивчення структури JWT для підготовки до співбесіди або навчального курсу з безпеки
  • Перевірка токена, перехопленого з інструментів розробника браузера або логів сервера, для розуміння його вмісту
  • Порівняння алгоритму заголовка між токенами для налагодження помилок автентифікації через невідповідність алгоритму

Кроки:

  1. Вставте свій JWT у поле вводу або натисніть «Завантажити приклад», щоб спробувати готовий приклад.
  2. Заголовок і корисне навантаження декодуються автоматично під час введення.
  3. Перегляньте claims, такі як iss, sub, exp та iat, у зрозумілому вигляді.
  4. Claims із мітками часу (exp, iat, nbf) автоматично перетворюються на читабельні дати.

Формула

JWT = base64Url(заголовок) + "." + base64Url(корисне навантаження) + "." + base64Url(підпис) Декодування: розділити за ".", декодувати перші дві частини з Base64URL, розібрати як JSON. Перевірка (тут не виконується): HMACSHA256(base64Url(заголовок) + "." + base64Url(корисне навантаження), секрет) === підпис

Випадки використання

  • Налагодження причини, чому API відхиляє токен, шляхом перевірки його claims
  • Перевірка часу дії токена під час розслідування звернення в службу підтримки
  • Перевірка того, що постачальник SSO чи OAuth видає саме ті claims, які ви очікуєте
  • Вивчення структури JWT для підготовки до співбесіди або навчального курсу
  • Швидка перевірка токена, скопійованого з інструментів розробника браузера або логів сервера

Ключові переваги

  • Миттєве декодування будь-якого JWT без бекенду чи консольного інструмента
  • Усе виконується на стороні клієнта — токени ніколи не надсилаються на сервер
  • Автоматичне перетворення claims із мітками часу на читабельні дати
  • Безкоштовно, без реєстрації, працює з будь-яким JWT незалежно від алгоритму

Поради

  • Завжди перевіряйте 'exp' першим під час налагодження помилки «unauthorized» — прострочений токен є найпоширенішою причиною
  • Порівнюйте 'alg' у заголовку з тим, що очікує ваш бекенд, щоб виявити помилки невідповідності алгоритму
  • Ніколи не довіряйте декодованому корисному навантаженню як доказу особи без перевірки підпису на сервері
  • Використовуйте короткострокові токени з refresh-токенами замість довгострокових JWT, щоб обмежити наслідки витоку

Поширені помилки

  • Вважати декодований JWT перевіреним JWT — декодування лише зчитує вміст, а не підтверджує автентичність
  • Зберігання чутливих даних (паролів, секретів) у корисному навантаженні, забуваючи, що воно доступне для читання будь-кому
  • Вставляння токенів із робочого середовища в ненадійні онлайн-декодери
  • Плутання 'exp' (закінчення терміну дії) з 'iat' (час видачі) під час налагодження проблем із терміном дії токена

Ключові терміни

Claim: фрагмент інформації, заявлений про суб'єкт, наприклад ідентифікатор користувача чи роль
Заголовок (Header): перший сегмент JWT, що визначає алгоритм підпису та тип токена
Корисне навантаження (Payload): другий сегмент JWT, що містить фактичні claims
Підпис (Signature): третій сегмент JWT, що використовується для перевірки того, що токен не було змінено

Пов'язані концепції

Приклад

Токен, що починається з eyJhbGciOiJIUzI1NiJ9, розшифровується в заголовок {"alg":"HS256","typ":"JWT"} — це означає, що токен підписано за допомогою HMAC-SHA256.

Інтерпретація результатів

Декодер розділяє JWT за двома крапками та декодує перші два сегменти у форматі Base64URL. Заголовок повідомляє алгоритм підпису (наприклад, HS256 або RS256) і тип токена. Корисне навантаження містить фактичні твердження — ідентифікацію користувача, дозволи та мітки часу. Мітки часу (exp, iat, nbf) автоматично перетворюються з епохи Unix у зрозумілі дати. Якщо 'exp' показує дату в минулому, токен прострочено, і більшість серверів його відхилять. Твердження 'sub' (суб'єкт) зазвичай містить ідентифікатор користувача, а 'iss' (емітент) визначає сервер, який створив токен. Пам'ятайте: декодування — це не перевірка. Розділ підпису відображається, але його неможливо перевірити без секретного чи відкритого ключа. Декодоване навантаження має лише інформаційний характер — ніколи не сприймайте його як доказ особи без перевірки підпису на боці сервера.

Часті запитання

Що таке JWT?
JSON Web Token (JWT) — це компактний, безпечний для URL спосіб представлення тверджень між двома сторонами. Він складається з трьох частин у кодуванні Base64URL, розділених крапками: заголовок, корисне навантаження та підпис.
Чи безпечно вставляти свій JWT у цей інструмент?
Декодування відбувається повністю у вашому браузері за допомогою JavaScript — токен ніколи не надсилається на жоден сервер. Проте ставтеся до JWT як до паролів: уникайте вставляння токенів з робочих (production) систем у будь-який онлайн-інструмент, включно з цим.
Чому цей інструмент не може перевірити підпис?
Для перевірки підпису JWT потрібен секретний ключ (для алгоритмів HMAC) або публічний ключ (для алгоритмів RSA/ECDSA), який має лише сервер, що видав токен. Цей інструмент лише декодує читабельні заголовок і корисне навантаження — він ніколи не має доступу до цього ключа.
Що означає claim 'exp'?
'exp' (Expiration Time) — це мітка часу Unix, яка вказує, коли токен перестає бути дійсним. Цей інструмент автоматично конвертує її у зручну дату, щоб ви могли швидко перевірити, чи термін дії токена не минув.
Що таке JWT?
JSON Web Token (JWT) — це компактний і безпечний для URL спосіб представлення тверджень між двома сторонами. Він складається з трьох частин, закодованих у Base64URL і відокремлених крапками: заголовка, корисного навантаження та підпису.
Чи безпечно вставляти свій JWT у цей інструмент?
Поширені алгоритми включають HS256 (HMAC-SHA256, симетричний), RS256 (RSA-SHA256, асиметричний) та ES256 (ECDSA). Поле 'alg' у заголовку визначає алгоритм. Найчастіше для веб-API використовуються HS256 або RS256.
Чому цей інструмент не може перевірити підпис?
'iat' (Issued At) — це час створення токена. 'nbf' (Not Before) — це час, з якого токен стає дійсним. Якщо 'nbf' знаходиться в майбутньому, токен слід відхилити, навіть якщо він ще не закінчився.
Що означає claim 'exp'?
Заголовок і корисне навантаження лише закодовані в Base64URL, але не зашифровані. Будь-хто може їх прочитати. Ніколи не зберігайте паролі, секрети або конфіденційні особисті дані в корисному навантаженні JWT. Включайте лише некритичні твердження, такі як ідентифікатор користувача, ролі та мітки часу.
Які алгоритми може використовувати JWT?
Токени доступу зазвичай діють 15–60 хвилин. Токени оновлення діють від кількох годин до кількох днів. Короткоживучі токени доступу з довгоживучими токенами оновлення балансують між безпекою та зручністю користувача.
Як скопіювати декодовані твердження?
Токен оновлення — це довгоживучий токен, який використовується для отримання нових токенів доступу без повторної автентифікації користувача. Коли короткоживучий токен доступу закінчується, клієнт надсилає токен оновлення, щоб отримати новий токен доступу.
Як скопіювати декодовані твердження?
Декодовані заголовок і корисне навантаження відображаються у вигляді відформатованого JSON. Ви можете скопіювати весь декодований результат або окремі значення тверджень для налагодження чи документування.

Відкрийте більше інструментів

Свіжі добірки з усієї нашої бібліотеки інструментів.