Ответ
OAuth 2.0 — это протокол авторизации, позволяющий приложениям получать ограниченный доступ к данным пользователя на других сервисах без передачи логина и пароля.
Основные роли:
- Resource Owner — пользователь
- Client — приложение, запрашивающее доступ
- Authorization Server — сервис, выдающий токены (например, Google, Facebook)
- Resource Server — API, защищающее данные
Типы потоков (grant types):
- Authorization Code — для серверных приложений
- Implicit (устарел) — для SPA
- Client Credentials — для сервис-сервис авторизации
- Refresh Token — обновление токена
Пример запроса кода авторизации:
const authUrl = `https://auth-server.com/authorize?
response_type=code&
client_id=CLIENT_ID&
redirect_uri=CALLBACK_URL&
scope=read_profile`;
OAuth 2.0 использует токены (access_token, refresh_token) вместо паролей, что безопаснее.