JWT используется для безопасной передачи информации между сторонами в виде JSON-объекта.
Основные сценарии применения:
- Авторизация: После успешной аутентификации сервер генерирует JWT, содержащий информацию о пользователе, и отправляет его клиенту. При последующих запросах клиент отправляет этот токен серверу, который может проверить его подлинность и получить данные пользователя без повторной аутентификации.
- Обмен информацией: Может использоваться для обмена данными между микросервисами или различными компонентами системы, гарантируя целостность и подлинность передаваемой информации.
Структура JWT состоит из трех частей, разделенных точками:
- Заголовок (Header): Содержит тип токена (JWT) и алгоритм шифрования (например, HS256, RS256).
- Набор утверждений (Payload): Содержит утверждения (claims) - информацию о сущности (обычно пользователе) и дополнительные метаданные. Утверждения бывают стандартными (registered claims), публичными (public claims) и приватными (private claims).
- Подпись (Signature): Создается путем хеширования закодированных заголовка и набора утверждений с секретным ключом. Это позволяет проверить целостность токена и убедиться, что он не был изменен.
Пример:
plaintext