Декодувати JSON Web Token (JWT)

декодує ваш JWT-токен (JSON Web Token) та відображає інформацію, яку він містить, у читабельному та структурованому вигляді

Що таке JWT (JSON Web Token)?

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

JWT складається з трьох частин, розділених крапкою:

  • Header (Заголовок): містить тип токена та алгоритм підпису
  • Payload (Корисне навантаження): містить твердження (claims) про користувача та інші дані
  • Signature (Підпис): підтверджує цілісність токена

Анатомія JWT

JWT складається з трьох частин, кожна з яких має конкретне призначення:

1. Header (Заголовок)

Заголовок містить метадані про токен, зокрема:

  • alg: Алгоритм підпису (наприклад, HS256, RS256)
  • typ: Тип токена (зазвичай "JWT")

Приклад: {"alg":"HS256","typ":"JWT"}

2. Payload (Корисне навантаження)

Payload містить твердження (claims) — твердження про сутність (зазвичай користувача) та інші дані. Існують три типи тверджень:

  • Registered claims: Зареєстровані твердження (iss, sub, aud, exp, nbf, iat, jti)
  • Public claims: Публічні твердження, визначені користувачами
  • Private claims: Приватні твердження для обміну інформацією

3. Signature (Підпис)

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

Чому потрібно декодувати JWT?

Декодування JWT дозволяє:

  • Перевірити вміст: Подивіться, які дані містяться у токені.
  • Налаштувати відладку: Діагностуйте проблеми з автентифікацією.
  • Перевірити термін дії: Переконайтеся, що токен ще дійсний.
  • Перевірити підпис: Підтвердьте, що токен не був підроблений.

Наш декодер JWT дозволяє легко переглядати вміст ваших токенів.

Декодер проти перевірника JWT

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

Перевірник JWT додатково перевіряє підпис токена за допомогою секретного або публічного ключа. Це єдиний спосіб переконатися, що токен дійсний і не був підроблений.

Використовуйте наш перевірник JWT для перевірки підпису.

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

Використання нашого декодера JWT дуже просте:

  1. Вставте свій JWT-токен у поле введення.
  2. Натисніть "Декодувати JWT".
  3. Перегляньте заголовок, корисне навантаження та підпис у розділах нижче.

Ви також можете перевірити підпис токена, якщо у вас є секретний або публічний ключ.

Безпека JWT

Важливі застереження щодо безпеки при роботі з JWT:

  • Ніколи не зберігайте чутливі дані у JWT без шифрування.
  • Використовуйте належні алгоритми: HS256 для симетричного підпису, RS256 для асиметричного.
  • Встановлюйте термін дії: Використовуйте поле exp для обмеження часу дії токена.
  • Перевіряйте підпис: Завжди перевіряйте підпис перед використанням даних з токена.
  • Не довіряйте сліпо: Дані у JWT можуть бути підроблені, якщо підпис не перевірено.

Приклади JWT

Ось приклад простого JWT:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

Декодований:

Header:
{
"alg": "HS256",
"typ": "JWT"
}

Payload:
{
"sub": "1234567890",
"name": "John Doe",
"iat": 1516239022
}

Поширені запитання про декодування JWT

Чи може хтось інший декодувати мій згенерований JWT?

Так, будь-хто може декодувати JWT, оскільки він лише підписаний, а не зашифрований. Payload просто закодований у Base64URL. Якщо payload містить конфіденційні дані, використовуйте формат JWE (JSON Web Encryption), який додає шифрування.

Чому мій payload відхиляється?

Payload має бути дійсним JSON-об’єктом. Поширені помилки: використання одинарних лапок замість подвійних, зайва кома перед закриваючою фігурною дужкою, рядкові значення без лапок. Спочатку перевірте свій JSON за допомогою нашого форматера JSON.

Приклад запиту

curl -X POST https://cdrn.fr/api/v1/tools/jwt-decoder/execute \
  -H "Content-Type: application/json" \
  -d '{"token":"..."}'

Схема вхідних даних

Поле Тип Обов'язкове За замовчуванням
token text

Точки доступу

  • GET https://cdrn.fr/api/v1/tools - перелічує всі доступні інструменти
  • GET https://cdrn.fr/api/v1/tools/jwt-decoder - отримує схему цього інструменту
  • POST https://cdrn.fr/api/v1/tools/jwt-decoder/execute - виконує цей інструмент з JSON-payload