Как работает OAuth
Python
Senior
Без компании
Как работает OAuth
Ответы
OAuth — это протокол для безопасной авторизации, позволяющий приложениям получать доступ к данным пользователя без передачи его логина и пароля. Работает через токены доступа (access token) и обновления (refresh token).
Основные этапы:
- Приложение перенаправляет пользователя на сервис (например, Google).
- Пользователь авторизуется и дает разрешение.
- Сервис возвращает код авторизации.
- Приложение обменивает код на токен доступа.
Пример с `requests-oauthlib`:
```
from requests_oauthlib import OAuth2Session
client_id = "your_client_id"
redirect_uri = "https://your-app/callback"
scope = ["profile", "email"]
oauth = OAuth2Session(client_id, redirect_uri=redirect_uri, scope=scope)
authorization_url, state = oauth.authorization_url("https://provider.com/auth")
# После редиректа получаем токен
token = oauth.fetch_token(
"https://provider.com/token",
client_secret="your_secret",
authorization_response=request.url
)
```
Токен имеет ограниченный срок жизни, для продления используется refresh token. OAuth2 поддерживает разные потоки (flows) для разных сценариев.