Назад к вопросам
Middle
7
Какие протоколы аутентификации и авторизации знаешь? Расскажи про JWT.
Компании, где спрашивали
Мыс
Ответ от нейросети
sobes.tech AI
Среди популярных протоколов аутентификации и авторизации можно выделить:
- Basic Auth — передача логина и пароля в заголовке HTTP (небезопасно без HTTPS).
- OAuth 2.0 — протокол авторизации, позволяющий сторонним приложениям получать ограниченный доступ к ресурсам пользователя.
- OpenID Connect — надстройка над OAuth 2.0 для аутентификации пользователей.
- SAML — протокол обмена аутентификационными и авторизационными данными, часто используется в корпоративных системах.
- JWT (JSON Web Token) — компактный токен для передачи информации о пользователе и правах.
JWT — это самодостаточный токен, который содержит закодированную информацию (payload), подписанную с помощью секретного ключа или пары ключей (для проверки подлинности). Токен состоит из трёх частей, разделённых точками:
- Header — содержит тип токена и алгоритм подписи.
- Payload — данные (например, идентификатор пользователя, роли, время жизни).
- Signature — цифровая подпись для проверки целостности.
Пример JWT:
xxxxx.yyyyy.zzzzz
JWT широко используется для аутентификации в веб-приложениях: сервер выдаёт токен после успешного входа, клиент хранит его (например, в localStorage) и отправляет с каждым запросом в заголовке Authorization. Сервер проверяет подпись и извлекает данные пользователя без необходимости хранить сессии.
Преимущества JWT:
- Без состояния (stateless) на сервере.
- Легко масштабируется.
- Можно передавать произвольные данные.
Недостатки:
- Если токен украден, злоумышленник может использовать его до истечения срока.
- Требует аккуратного управления сроками жизни и обновлением токенов.