Мартовский Код

JWT

JWT (JSON Web Token, произносится «джот») — это компактный токен, который содержит информацию о пользователе в зашифрованном виде. Сервер выдаёт JWT при входе, а клиент передаёт его с каждым запросом — вместо того чтобы каждый раз отправлять логин и пароль.

JWT состоит из трёх частей, разделённых точкой: заголовок (алгоритм шифрования), полезная нагрузка (данные: ID пользователя, роль, срок действия) и подпись (гарантия подлинности). Всё закодировано в Base64 — это одна длинная строка, которая легко передаётся в HTTP-заголовке.

Главное преимущество JWT — серверу не нужно хранить сессии. Вся информация уже внутри токена. Сервер просто проверяет подпись — если она верна, данным можно доверять. Это удобно для микросервисной архитектуры: любой сервис может проверить токен, не обращаясь к централизованному хранилищу сессий.

Но есть нюанс: отозвать JWT до истечения срока невозможно без дополнительных механизмов (чёрный список токенов). Поэтому access-токены делают короткоживущими (15-30 минут), а для обновления используют refresh-токен.

Главное

  • Содержит данные о пользователе внутри токена
  • Не требует хранения сессий на сервере
  • Идеален для микросервисов и API
  • Три части: заголовок, полезная нагрузка, подпись
  • Короткий срок жизни + refresh-токен для безопасности

Примеры

Личные кабинеты и SaaS-платформы: после входа сервер выдаёт JWT, который браузер отправляет с каждым запросом. Мобильные приложения: JWT хранится в защищённом хранилище устройства. Микросервисная архитектура: сервисы проверяют JWT самостоятельно, без обращения к auth-серверу.

Когда это нужно

JWT нужен, когда: разрабатываете REST API с аутентификацией, строите микросервисную архитектуру, нужна авторизация для мобильного и веб-приложения одновременно, хотите масштабировать серверы без «липких» сессий.

Связанные термины

Частые вопросы

JWT безопасен?

JWT безопасен при правильном использовании: короткий срок жизни access-токена (15-30 мин), refresh-токен с ротацией, HTTPS обязательно, токен не хранится в localStorage (лучше httpOnly cookie). Без этих практик — уязвим для перехвата.

Чем JWT лучше обычных сессий?

JWT не требует хранения состояния на сервере — проще масштабировать. Работает с разными клиентами (веб, мобилка, API). Но сессии проще отозвать. Выбор зависит от архитектуры: для монолита сессии проще, для микросервисов — JWT.

Где это применяется

Разработка веб-приложений

Создаём веб-приложения: личные кабинеты, B2B-порталы, дашборды. Next.js, React, интеграция с 1С и CRM. От 200К, кликабельный прототип — бесплатно за 5 дней.

Как мы это делаем

Свяжитесь с нами напрямую

Напишите или позвоните — ответим в течение рабочего дня и поможем разобраться с задачей.

Обращаясь к нам через мессенджер, почту или по телефону, вы по собственной инициативе передаёте контактные данные для подготовки ответа на ваше обращение (п. 5 ч. 1 ст. 6 152-ФЗ). Подробнее — в Политике конфиденциальности.

Продолжите изучение

Читайте также

SaaS-разработкаУслуга

от 390 000 ₽ · 8–10 недель

SaaS-разработка

Запускаем сервисы по подписке: мультитенантность, биллинг Stripe и ЮKassa, метрики MRR и churn. MVP-ядро SaaS — от 390 000 ₽ за 8–10 недель, кликабельный прототип бесплатно за 5 дней.

Подробнее
Глоссарий

Микросервисы

Микросервисы — архитектура из независимых модулей, каждый со своей БД. Масштабируются автономно, ускоряют релизы и снижают риски. Когда выбрать монолит.

Подробнее
Глоссарий

REST API

REST API — архитектурный стиль обмена данными через HTTP: ресурсы, методы (GET, POST, PUT, DELETE), статусы, JSON. Отличие от SOAP и GraphQL, принципы дизайна.

Подробнее
Глоссарий

OAuth

OAuth 2.0 — открытый протокол делегированной авторизации: вход через Google, VK, GitHub без передачи пароля. Flow, токены доступа, отличие от OpenID Connect.

Подробнее