Что такое OAuth 2.0?
DOM и браузер
OAuth 2.0 — это протокол авторизации, позволяющий приложению получить ограниченный доступ к ресурсам пользователя на другом сервисе без передачи его пароля.
Задача
Дать приложению доступ к данным пользователя (например, «войти через Google», доступ к фото) без того, чтобы приложение знало пароль. Пользователь выдаёт разрешение, а приложение получает токен.
Основные роли
- Resource Owner — пользователь.
- Client — приложение, запрашивающее доступ.
- Authorization Server — выдаёт токены (Google, GitHub).
- Resource Server — хранит данные (API).
Authorization Code Flow (основной)
- Приложение перенаправляет пользователя на сервер авторизации.
- Пользователь логинится и соглашается дать доступ.
- Приложение получает authorization code.
- Обменивает код (на бэкенде, с client secret) на access token.
- Использует access token для запросов к API.
Authorization: Bearer <access_token>Токены
- Access token — короткоживущий, для доступа к API.
- Refresh token — для получения нового access token без повторного логина.
Нюансы
- OAuth 2.0 — про авторизацию (доступ), а аутентификацию («кто ты») поверх него даёт OpenID Connect.
- Для SPA рекомендуется Authorization Code Flow с PKCE.
Коротко для собеседования
OAuth 2.0 — протокол авторизации: приложение получает access token для доступа к ресурсам пользователя без его пароля. Основной сценарий — Authorization Code Flow (код → обмен на токен). Access token короткий, refresh — для обновления. Аутентификацию даёт OpenID Connect поверх OAuth.
Подробнее: OAuth 2.0