Что такое JWT и из каких частей он состоит? JWT (JSON Web Token) — компактный стандартный формат токена, предназначенный для безопасной и самодостаточной передачи данных Токен включает три компонента, которые отделяются друг от друга точками: Header (заголовок) — указывает тип токена (JWT) и алгоритм, применённый для подписи (например, HS256) Payload (полезная нагрузка) — хранит утверждения (claims), включая id пользователя, права доступа и время окончания действия (exp) Signature (подпись) — криптографически подписанные Header и Payload, позволяющие с помощью секретного ключа проверить целостность и подлинность токена Представляется как…
Что такое JWT и из каких частей состоит этот токен?
Что такое JWT и из каких частей он состоит? JWT (JSON Web Token) — компактный стандартный формат токена, предназначенный для безопасной и самодостаточной передачи данных Токен включает три компонента, которые…
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Что такое JWT и из каких частей он состоит?
- JWT (JSON Web Token) — компактный стандартный формат токена, предназначенный для безопасной и самодостаточной передачи данных
- Токен включает три компонента, которые отделяются друг от друга точками:
- Header (заголовок) — указывает тип токена (JWT) и алгоритм, применённый для подписи (например, HS256)
- Payload (полезная нагрузка) — хранит утверждения (claims), включая id пользователя, права доступа и время окончания действия (exp)
- Signature (подпись) — криптографически подписанные Header и Payload, позволяющие с помощью секретного ключа проверить целостность и подлинность токена
- Представляется как три строки в формате base64url, объединённые точками: header.payload.signature
- Применяется для аутентификации и защищённого обмена данными между клиентом и сервером с контролем их неизменности
- Поддерживает безсессионную (stateless) архитектуру, поэтому серверу не требуется хранить состояние сессий
- Часто используется в REST API и микросервисах, где права доступа можно проверять без обращения к БД
- Главный плюс — самодостаточность и проверяемость без обращения к серверу, если для валидации подписи доступен секретный или публичный ключ
Подробный ответ
Основной ответ
JWT (JSON Web Token) представляет собой компактный токен, безопасный для передачи в URL. Он позволяет обмениваться информацией между сторонами в формате JSON-объекта. Технология широко используется для аутентификации и авторизации в распределённых системах: сервер может проверить подлинность клиента, не сохраняя данные о его сессии.
JWT включает три части, разделённые точками:
- Header (заголовок) — содержит служебные сведения о токене: как правило, его тип (
typ: JWT) и используемый алгоритм подписи (alg: HS256,RS256и др.). - Payload (полезная нагрузка) — JSON-набор заявлений (claims). В нём могут находиться идентификатор пользователя (
sub), срок действия (exp), момент выпуска токена (iat) и другие пользовательские данные. - Signature (подпись) — криптографическое значение, вычисленное по закодированным в base64url header и payload с применением секретного либо приватного ключа. Подпись подтверждает целостность и подлинность JWT.
Ключевые моменты
- JWT работают по принципу stateless: серверу не требуется сохранять состояние сессии, благодаря чему систему проще масштабировать.
- Описание стандарта приведено в RFC 7519. JWT поддерживается большинством языков программирования и библиотек, включая jsonwebtoken для Node.js и jjwt для Java.
- Уровень безопасности определяется тем, насколько надёжно защищён секретный ключ и корректно ли настроен алгоритм подписи. Применение слабых или непроверенных алгоритмов часто становится причиной уязвимостей.
Практический контекст
В авторизации REST API JWT применяется следующим образом: после успешного входа сервер возвращает токен, а клиент передаёт его в заголовке Authorization (Bearer token) при следующих запросах. Это уменьшает серверную нагрузку и облегчает горизонтальное масштабирование системы.