Что такое jwt токен и как он работает?
JWT (JSON Web Token) — это компактный и безопасный способ передачи информации между клиентом и сервером в виде JSON-объекта. Обычно используется для аутентификации и авторизации.
1️⃣ Структура JWT
JWT состоит из трёх частей, разделённых точками:
<Header>.<Payload>.<Signature>
Header (заголовок)
Указывает алгоритм подписи и тип токена.
{ "alg": "HS256", "typ": "JWT" }
Payload (полезная нагрузка)
Содержит данные пользователя или другие claims (например, user_id, роль, срок действия).
{ "sub": "1234567890", "name": "John Doe", "role": "admin", "exp": 1715199300 }
Signature (подпись)
Создаётся с помощью секретного ключа и header + payload.
Проверяет, что токен не был изменён.
2️⃣ Принцип работы
Пользователь логинится → сервер проверяет логин и пароль.
Сервер создаёт JWT и отправляет клиенту.
Клиент сохраняет токен (например, в localStorage или cookie).
Для запросов к API клиент отправляет токен в заголовке:
Authorization: Bearer <jwt_token>
Сервер проверяет подпись и срок действия (
exp
).Если токен валиден → запрос выполняется; иначе → 401 Unauthorized.
3️⃣ Преимущества
Stateless: сервер не хранит сессию, все данные в токене.
Мобильность: токен можно использовать между сервисами.
Защита от подделки: подпись проверяет целостность данных.
4️⃣ Недостатки
Нельзя легко отозвать токен до истечения срока действия.
Хранение в localStorage уязвимо к XSS, в cookie — к CSRF (если не использовать HttpOnly).
5️⃣ QA-проверки
Корректность создания токена и срок действия.
Доступ к защищённым эндпоинтам с валидным и просроченным токеном.
Проверка невозможности подмены данных или подписи.
Last updated
Was this helpful?