Работал ли с OAuth 2.0
Python
Senior
Без компании
Работал ли с OAuth 2.0
Ответы
Да, работал. OAuth 2.0 — протокол авторизации для безопасного делегирования доступа к ресурсам. Основные компоненты: клиент, ресурсный сервер, сервер авторизации и владелец ресурса.
Основные потоки (grant types):
- Authorization Code (наиболее безопасный для веб-приложений)
- Implicit (устарел, не рекомендуется)
- Client Credentials (для сервис-сервисной аутентификации)
- Password (редко используется из-за рисков)
Пример с `requests_oauthlib` (Authorization Code flow):
```
from requests_oauthlib import OAuth2Session
client_id = "your_client_id"
redirect_uri = "https://your-redirect-uri"
scope = ["read:user"]
oauth = OAuth2Session(client_id, redirect_uri=redirect_uri, scope=scope)
# Получение authorization URL
auth_url, state = oauth.authorization_url("https://provider.com/auth")
# После редиректа с code:
token = oauth.fetch_token(
"https://provider.com/token",
client_secret="your_client_secret",
authorization_response=redirect_response
)
```
Важно: хранить `client_secret` безопасно, использовать PKCE для мобильных/SPA, валидировать `state` параметр.