Що таке Декодер JWT?
JWT (JSON Web Token) — це стандартний спосіб, у який сучасні веб-API представляють твердження автентифікації та авторизації. Це компактний, самодостатній токен, що складається з трьох частин — заголовка з описом алгоритму підпису, корисного навантаження з фактичними твердженнями (такими як ідентифікатор користувача, ролі та термін дії) і підпису, який дозволяє серверу-отримувачу переконатися, що токен не було змінено.
Цей декодер миттєво зчитує заголовок і корисне навантаження, щоб ви могли налагоджувати проблеми автентифікації, перевіряти, які твердження фактично надсилає API, або дізнатися, коли закінчується термін дії токена — і все це без потреби в бекенді, інструменті командного рядка або вставленні чутливих токенів на сторонній сервер, оскільки все працює локально у вашому браузері.
Коли використовувати цей калькулятор
- Налагодження причини, чому API відхиляє токен, шляхом перевірки його claims та часу дії
- Перевірка часу дії токена під час розслідування звернення в службу підтримки або реагування на інциденти
- Перевірка того, що провайдер SSO або OAuth видає твердження, які очікує ваш застосунок.
- Вивчення структури JWT для підготовки до співбесіди або навчального курсу з безпеки
- Перевірка токена, перехопленого з інструментів розробника браузера або логів сервера, для розуміння його вмісту
- Порівняння алгоритму заголовка між токенами для налагодження помилок автентифікації через невідповідність алгоритму
Кроки:
- Вставте свій JWT у поле вводу або натисніть «Завантажити приклад», щоб спробувати готовий приклад.
- Заголовок і корисне навантаження декодуються автоматично під час введення.
- Перегляньте claims, такі як iss, sub, exp та iat, у зрозумілому вигляді.
- 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, що використовується для перевірки того, що токен не було змінено
Пов'язані концепції
- Генератор хешу:
- Генератор UUID:
- Кодувальник/декодувальник Base64:
- Форматер JSON:
- Перевірка міцності пароля:
Приклад
Токен, що починається з eyJhbGciOiJIUzI1NiJ9, розшифровується в заголовок {"alg":"HS256","typ":"JWT"} — це означає, що токен підписано за допомогою HMAC-SHA256.
Інтерпретація результатів
Декодер розділяє JWT за двома крапками та декодує перші два сегменти у форматі Base64URL. Заголовок повідомляє алгоритм підпису (наприклад, HS256 або RS256) і тип токена. Корисне навантаження містить фактичні твердження — ідентифікацію користувача, дозволи та мітки часу.
Мітки часу (exp, iat, nbf) автоматично перетворюються з епохи Unix у зрозумілі дати. Якщо 'exp' показує дату в минулому, токен прострочено, і більшість серверів його відхилять. Твердження 'sub' (суб'єкт) зазвичай містить ідентифікатор користувача, а 'iss' (емітент) визначає сервер, який створив токен.
Пам'ятайте: декодування — це не перевірка. Розділ підпису відображається, але його неможливо перевірити без секретного чи відкритого ключа. Декодоване навантаження має лише інформаційний характер — ніколи не сприймайте його як доказ особи без перевірки підпису на боці сервера.

