Sobes.tech
Back to questions
Middle
6

Какие протоколы аутентификации и авторизации знаешь? Расскажи про JWT.

Companies where asked
Мыс

Answer from AI

sobes.tech AI

Среди популярных протоколов аутентификации и авторизации можно выделить:

  • Basic Auth — передача логина и пароля в заголовке HTTP (небезопасно без HTTPS).
  • OAuth 2.0 — протокол авторизации, позволяющий сторонним приложениям получать ограниченный доступ к ресурсам пользователя.
  • OpenID Connect — надстройка над OAuth 2.0 для аутентификации пользователей.
  • SAML — протокол обмена аутентификационными и авторизационными данными, часто используется в корпоративных системах.
  • JWT (JSON Web Token) — компактный токен для передачи информации о пользователе и правах.

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

  1. Header — содержит тип токена и алгоритм подписи.
  2. Payload — данные (например, идентификатор пользователя, роли, время жизни).
  3. Signature — цифровая подпись для проверки целостности.

Пример JWT:

xxxxx.yyyyy.zzzzz

JWT широко используется для аутентификации в веб-приложениях: сервер выдаёт токен после успешного входа, клиент хранит его (например, в localStorage) и отправляет с каждым запросом в заголовке Authorization. Сервер проверяет подпись и извлекает данные пользователя без необходимости хранить сессии.

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

  • Без состояния (stateless) на сервере.
  • Легко масштабируется.
  • Можно передавать произвольные данные.

Недостатки:

  • Если токен украден, злоумышленник может использовать его до истечения срока.
  • Требует аккуратного управления сроками жизни и обновлением токенов.