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 разделяет аутентификацию и авторизацию: пользователь доверяет провайдеру, провайдер — приложению, приложение получает минимально необходимые права.