Что такое JWT?
DOM и браузер
JWT (JSON Web Token) — это компактный самодостаточный токен для передачи информации между сторонами в виде подписанного JSON. Используется для аутентификации и авторизации.
Структура
Три части, разделённые точками: header.payload.signature (в Base64URL).
eyJhbGc... . eyJzdWIi... . SflKxwRJ...
header payload signature- Header — алгоритм и тип (
{ "alg": "HS256", "typ": "JWT" }). - Payload — данные (claims):
sub,exp,roleи др. - Signature — подпись header+payload секретом/приватным ключом.
Как работает
- Пользователь логинится → сервер выдаёт подписанный JWT.
- Клиент шлёт токен в заголовке:
Authorization: Bearer <token>. - Сервер проверяет подпись, если валидна, доверяет данным без запроса в БД (stateless).
Свойства
- Самодостаточность — данные внутри токена, сервер не хранит сессию.
- Подпись, не шифрование — payload читаем (Base64), но защищён от подделки подписью. Не класть секреты в payload.
- Срок жизни (
exp) — короткий access + отдельный refresh-токен.
Минусы
- Нельзя легко «отозвать» до истечения (нужны чёрные списки/короткий TTL + refresh).
Коротко для собеседования
JWT — подписанный токен header.payload.signature (Base64URL) для stateless-аутентификации. Сервер проверяет подпись, не храня сессию. Payload читаем — секреты туда не кладут. Используют короткий access + refresh-токен; отзыв — через короткий TTL.
Подробнее: JWT — введение