tigtools

Декодер JWT

Вставте JWT, щоб переглянути його заголовок і claims та дізнатися, коли завершиться термін його дії. Декодування відбувається у браузері, підпис не перевіряється.

Працює у вашому браузері Без реєстрації

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

Як користуватися

  1. Скопіюйте токен із заголовка Authorization, файлу cookie або інструментів розробника браузера. Префікс «Bearer » буде видалено автоматично.
  2. Вставте його в поле. Заголовок і корисне навантаження відобразяться у форматі JSON.
  3. Перевірте рядок стану й таблицю claims: там указано видавця, аудиторію та терміни дії у вашому місцевому часі.
  4. За потреби скопіюйте JSON заголовка або корисного навантаження.

Як це працює

JSON Web Token (JWT, RFC 7519) у поширеному форматі з підписом (JWS) складається з трьох частин у кодуванні base64url, розділених крапками. У заголовку вказано алгоритм, яким підписано токен, наприклад HS256 (HMAC із SHA-256) або RS256 (RSA). Корисне навантаження містить клейми — відомості про користувача й сам токен. За підписом сервер може перевірити, чи не змінено заголовок і корисне навантаження.

Заголовок і корисне навантаження лише закодовано, а не зашифровано. Будь-хто, хто має токен, може прочитати його вміст — саме це й робить цей інструмент. Не додавайте секрети до корисного навантаження JWT.

Декодування нічого не доводить про токен. Без ключа видавця неможливо визначити, чи справжній підпис, тому результат тут ніколи не можна використовувати для вирішення, чи довіряти токену. Перевірку потрібно виконувати на сервері за допомогою актуальної бібліотеки JWT, яка перевіряє підпис, алгоритм, exp, nbf, iss і aud.

Зареєстровані клейми описано в таблиці. exp, nbf та iat — це значення NumericDate: кількість секунд від 1 січня 1970 року за UTC. Інструмент перетворює їх на дати у вашому часовому поясі й порівнює з годинником вашого пристрою, не враховуючи невеликий запас часу, який сервери часто допускають через розбіжність годинників. Якщо годинник показує неправильний час, статус теж буде неправильним.

Токени з п’ятьма частинами — це зашифровані JWT (JWE). Їхнє корисне навантаження неможливо декодувати без ключа, тому інструмент лише визначає формат.

Приклади

Чому API повертає помилку 401?

Декодуйте токен доступу, який надсилає ваш застосунок. Якщо в рядку статусу написано «Строк дії завершився …», клієнту потрібно оновити токен. Якщо aud має значення https://api.example.com, а ви звертаєтеся до https://api2.example.com, аудиторія не збігається.

Перевірка ID-токена OpenID Connect

ID-токен від постачальника послуги входу містить iss (постачальник), sub (стабільний ідентифікатор користувача), aud (ідентифікатор вашого клієнта), iat і exp, а також клейми профілю, як-от email і name. Декодування покаже, які саме клейми отримує ваш застосунок.

Як прочитати часовий клейм

У корисному навантаженні є "exp": 1735689600. У таблиці клеймів це значення відображається як 1 січня 2025 року, 00:00:00 за UTC, перетворене на місцевий час, а також показано, скільки часу минуло або залишилося.

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

Чи перевіряє цей інструмент підпис JWT?

Ні. Інструмент лише декодує заголовок і корисне навантаження. Для перевірки потрібен секрет (для HS256) або відкритий ключ видавця (для RS256 і ES256). Її слід виконувати на сервері за допомогою надійної бібліотеки.

Чи безпечно вставляти сюди свій токен?

Токен декодується у вашому браузері й нікуди не надсилається. Однак дійсний токен працює як пароль, доки не завершиться строк його дії. Тому краще використовувати прострочені або тестові токени й ніколи не вставляти робочі токени в інструменти, яким не довіряєте.

Чому будь-хто може прочитати корисне навантаження?

Підписані JWT закодовані у base64url — це не шифрування. Підпис захищає токен від змін, але не від прочитання. Якщо вміст має бути секретним, використовуйте зашифрований JWT (JWE) або зберігайте дані на сервері.

Що означає «exp» і в яких одиницях його вказують?

exp — це час завершення дії у форматі NumericDate: ціла кількість секунд (не мілісекунд) від 1970-01-01 00:00:00 UTC. Токен потрібно відхилити в цей момент або пізніше.

Чому з’являється помилка «некоректний base64url»?

Ймовірно, токен обрізали або змінили під час копіювання — наприклад, втратили останні символи, додали лапки або закодували URL (%2E замість крапки). Вставте вихідний токен без змін, саме таким, яким його було видано.

Конфіденційність

Токен декодується за допомогою JavaScript у вашому браузері. Він не надсилається на сервер, не зберігається й не передається в аналітику. Підпис не перевіряється, ключ не шукається, тому мережеві запити не виконуються.