Вопрос проверяет понимание механизма авторизации OAuth 2.0.
OAuth 2.0 позволяет приложениям получать ограниченный доступ к данным пользователя без раскрытия пароля. Основные роли: клиент, ресурсный сервер, сервер авторизации и владелец ресурса.
Основные компоненты:
Клиент - приложение, запрашивающее доступ
Сервер авторизации - выдает токены доступа
Ресурсный сервер - хранит данные пользователя
Владелец ресурса - пользователь
Типовой flow (Authorization Code):
Клиент перенаправляет пользователя на сервер авторизации
Пользователь подтверждает запрос прав
Сервер возвращает код авторизации
Клиент обменивает код на токен доступа
Клиент использует токен для доступа к API
Типы grant types:
Authorization Code (для веб-приложений)
Implicit (упрощенный, для SPA)
Client Credentials (для сервер-сервер)
Password (устаревший, не рекомендуется)
Пример запроса токена:
POST /token HTTP/1.1
Host: auth-server.com
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code
&code=SplxlOBeZQQYbYS6WxSbIA
&redirect_uri=https%3A%2F%2Fclient%2Fcallback
&client_id=client_id
&client_secret=client_secret