Sobes.tech
Назад к вопросам
Junior — Middle
60

Можете объяснить, что подразумевается под аутентификацией с использованием bearer токенов?

Ответ от нейросети

sobes.tech AI

Что хотят услышать интервьюеры:

Bearer-токен — это токен доступа, который клиент передаёт серверу в заголовке Authorization. Сервер проверяет токен и, если он валиден, считает запрос аутентифицированным. Обычно это удобный способ для API, потому что не требует передавать логин и пароль на каждый запрос.

Определение:

Аутентификация с использованием bearer токена — это схема, при которой клиент доказывает свою подлинность не паролем, а специальным токеном доступа. Токен обычно выдаётся после успешного входа и затем используется повторно в последующих запросах. Формат передачи стандартный: Authorization: Bearer <token>.

Пример использования:

Например, пользователь авторизовался в приложении, сервер выдал JWT или другой access token, и дальше клиент обращается к защищённому API с этим токеном.

GET /api/profile HTTP/1.1
Host: example.com
Authorization: Bearer eyJhbGciOi...

На стороне сервера запрос проходит только если токен действителен, не истёк и имеет нужные права.

Пояснение кода:

Код не требуется. Пример работает так:

  1. Клиент сначала получает токен после логина или через OAuth-процедуру.
  2. Клиент сохраняет токен и отправляет его в каждом защищённом запросе.
  3. Сервер извлекает значение из заголовка Authorization.
  4. Сервер валидирует токен: подпись, срок жизни, issuer/audience и при необходимости права доступа.
  5. Если проверка успешна, запрос обрабатывается; если нет — возвращается 401 Unauthorized.

Ключевые моменты:

  • Bearer означает, что доступ получает тот, кто предъявил токен; дополнительный секрет в запросе обычно не нужен.
  • Токен часто короткоживущий, чтобы снизить риск при утечке.
  • Это популярный механизм для REST API, mobile и SPA-приложений.
  • Важно отличать аутентификацию от авторизации: токен подтверждает личность, а права определяются отдельно.
  • При передаче токена критично использовать HTTPS, иначе его можно перехватить.