Безкоштовні інструменти

Декодер JWT

Локально розділяє JWT і декодує його заголовок та корисне навантаження через base64url, з читабельними часовими claim-ами й без перевірки підпису.

Для чого потрібен декодер JWT

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

Як влаштований JWT

Підписаний JWT складається з трьох сегментів base64url, з'єднаних крапками, у формі header.payload.signature. Заголовок (header) — це невеликий об'єкт JSON, який називає алгоритм підпису, наприклад HS256 або RS256, і тип токена. Корисне навантаження (payload) — це об'єкт JSON із твердженнями (claims): стандартні охоплюють iss (видавець), sub (суб'єкт), aud (аудиторія), exp (закінчення строку), iat (час видачі) та nbf (не раніше ніж), поряд із будь-якими власними полями, які додав видавець. Підпис (signature) обчислюється над першими двома сегментами за допомогою алгоритму, який оголошено в заголовку, і саме він дозволяє серверу довести, що токен не змінювали під час передавання.

Base64url — це URL-безпечний родич звичайного Base64: він підставляє - та _ замість + та / і зазвичай відкидає доповнення =, тож токен може мандрувати в заголовках і посиланнях без змін. Цей інструмент виконує зворотне декодування заголовка та корисного навантаження, форматує отриманий JSON для зручного читання і перетворює значення exp, iat та nbf — які є позначками часу Unix, відлічуваними в секундах — на читабельні дати, тож ви можете з першого погляду побачити, чи токен ще діє. Поле алгоритму також підказує, як саме перевірятиметься токен: HS256 — це симетричний HMAC на основі спільного секрету, тоді як RS256 та ES256 є асиметричними, де будь-хто може перевірити токен за допомогою відкритого ключа, але лише видавець може підписати його приватним.

Конкретні приклади та сценарії використання

  • Налагодження відповіді 401: декодуйте токен і перевірте, чи exp вже минув — більшість «прострочених» помилок насправді спричинені збоєм годинника чи часового поясу.
  • Підтвердження авторизації: прочитайте твердження scope або ролей, щоб переконатися, що токен надає саме те, чого справді вимагає кінцева точка.
  • Перевірка ідентичності: огляньте sub та iss, щоб підтвердити, що токен було видано правильному суб'єкту правильним центром.
  • Виявлення пастки alg: none: токен, який стверджує, що алгоритму немає взагалі, будь-який коректний верифікатор повинен відхилити беззастережно.

Критичне застереження: декодування — це не перевірка

Це найважливіший підводний камінь. Корисне навантаження JWT лише закодоване, а не зашифроване, тож будь-хто, хто має токен, може прочитати кожне твердження в ньому — ніколи не розміщуйте пароль чи справжній секрет у навантаженні та ставтеся до всього токена як до облікового засобу пред'явника, який слід захищати і під час передавання, і в стані спокою. Не менш важливо: цей інструмент декодує токен; він не перевіряє підпис. Читабельне навантаження нічого не говорить про те, чи токен автентичний, адже будь-хто може вручну сфабрикувати підроблений JWT з будь-якими твердженнями на свій смак. Лише сервер-видавець, який володіє секретом або відкритим ключем, може перевірити підпис і підтвердити, що токену можна довіряти, і ця перевірка завжди має відбуватися на боці сервера під час кожного запиту.

Усе залишається на вашому пристрої

Декодування відбувається повністю у вашому браузері: токен, який ви вставляєте, ніколи не передається, ніколи не завантажується та ніколи не журналюється. Це саме та поведінка, якої ви хочете від інструмента для JWT, адже справжній токен — це живий ключ до облікового запису; вставлення його в серверний декодер означало б передати ваш обліковий засіб незнайомцю. Виконання роботи локально повністю усуває цей ризик і дозволяє інструменту працювати навіть із вимкненим з'єднанням. Наша власна платформа використовує підписані сеансові токени для автентифікації, а документація для розробників пояснює, як вони видаються та як ваша інтеграція має безпечно пред'являти й оновлювати їх.

Цю сторінку знаходять за запитами

Реальні пошукові фрази, на які відповідає ця сторінка — за посиланнями відкриються матеріали, що розкривають тему глибше.