An illustrated guide to OAuth
Как работает OAuth
Вместо передачи логина-пароля стороннему приложению OAuth выдаёт токен доступа — персональный «ключ» для конкретного пользователя. Приложение использует его, чтобы действовать от имени пользователя без доступа к его паролю.
Классический поток
- Пользователь нажимает «Подключить банк» в YNAB.
- YNAB открывает браузер с URL провайдера (например, банка), куда добавляет
client_id,redirect_uri,scopeи случайныйstate. - Пользователь логинится у провайдера и разрешает доступ.
- Провайдер перенаправляет обратно в YNAB с кодом авторизации.
- YNAB обменивает код на токен доступа через безопасный back-end-запрос.
- С токеном YNAB запрашивает данные счёта.
PKCE
Для мобильных и SPA добавляют code_challenge и code_verifier, чтобы перехват кода не дал злоумышленнику токен.
Refresh-токены
Короткоживущий access token можно обновлять долгоживущим refresh token без повторного логина.
Итог
OAuth разделяет аутентификацию и авторизацию: пользователь доверяет провайдеру, провайдер — приложению, приложение получает минимально необходимые права.