JSON Web Token (JWT)

⌘K

JSON Web Token (JWT)

JWT — это формат токена, предназначенный для передачи утверждённой информации между двумя сторонами в компактном и самодостаточном виде. Его используют для реализации аутентификации, авторизации и безопасного обмена данными в распределённых системах.

Токен состоит из трёх частей:

  1. Header — содержит тип токена и используемый алгоритм подписи (например, HS256 или RS256);
  2. Payload — несёт в себе набор утверждений (claims): идентификатор пользователя, роли, срок действия и прочие атрибуты;
  3. Signature — результат криптографической подписи первых двух частей с использованием секретного ключа или публично-приватной пары.

Все три части соединяются в строку, разделённую точками:

header.payload.signature


Как работает JWT

  1. Пользователь проходит аутентификацию (например, логин через форму).
  2. Сервер генерирует JWT, подписывает его и возвращает клиенту.
  3. Клиент сохраняет токен (чаще всего в
    localStorage
    ,
    sessionStorage
    или
    httpOnly
    cookie).
  4. При последующих запросах клиент передаёт токен в заголовке
    Authorization: Bearer <token>
    .
  5. Сервер проверяет подпись токена и извлекает данные без необходимости обращения к базе данных.

📌 При использовании асимметричной подписи (RS256), подпись проверяется на основе публичного ключа, что особенно удобно в распределённых системах и микросервисной архитектуре.


Применение JWT

  • В REST API, где клиент должен быть независим от серверной сессии;
  • В одностраничных приложениях (SPA), где хранение состояния на клиенте критично для производительности;
  • В микросервисах — для безопасного обмена информацией между сервисами без центрального хранилища сессий;
  • В SSO-сценариях — как основной носитель информации об идентичности пользователя.

Преимущества

  • Самодостаточность: JWT содержит всю необходимую информацию, серверу не требуется хранить сессию;
  • Универсальность: токен можно валидировать независимо от того, где он был выпущен;
  • Производительность: не требует постоянных обращений к базе данных;
  • Совместимость: широко поддерживается в современных фреймворках и библиотеках;
  • Поддержка TTL: встроенные поля
    exp
    ,
    nbf
    ,
    iat
    позволяют задавать срок действия и контролировать валидность.

Пример на практике

После успешного входа в систему пользователь получает JWT с информацией об аккаунте и временем действия токена. Этот токен сохраняется в браузере и используется для всех последующих запросов. Сервер проверяет только подпись и срок действия — доступ разрешается без повторной авторизации.


JWT — это стандарт RFC 7519, который стал основой авторизации в современных веб-приложениях, API и микросервисных платформах. При правильной реализации он даёт надёжный способ обмена удостоверяющей информацией без избыточной нагрузки на backend.

Немного экономии прямо здесь

Планируете VPS на 12 месяцев? Примените NEWCOM — получите +1 бесплатно.

Месяц в подарок
COPIED
NEWCOM COPIED