### Fixed - 🔒 **OAuth Facebook**: Обновлена версия API с v13.0 до v18.0 (актуальная) - 🔒 **OAuth Facebook**: Добавлены обязательные scope и параметры безопасности - 🔒 **OAuth Facebook**: Улучшена обработка ошибок API и валидация ответов - 🔒 **OAuth VK**: Обновлена версия API с v5.131 до v5.199+ (актуальная) - 🔒 **OAuth VK**: Исправлен endpoint с `authors.get` на `users.get` - 🔒 **OAuth GitHub**: Добавлены обязательные scope `read:user user:email` - 🔒 **OAuth GitHub**: Улучшена обработка ошибок и получения email адресов - 🔒 **OAuth Google**: Добавлены обязательные scope для OpenID Connect - 🔒 **OAuth X/Twitter**: Исправлен endpoint с `authors/me` на `users/me` - 🔒 **Session Cookies**: Автоматическое определение HTTPS через переменную окружения HTTPS_ENABLED - 🏷️ **Type Safety**: Исправлена ошибка в OAuth регистрации провайдеров
This commit is contained in:
@@ -151,13 +151,16 @@ async def get_oauth_state(state: str) -> Optional[dict]:
|
||||
GOOGLE_OAUTH_CONFIG = {
|
||||
"client_id": os.getenv("GOOGLE_CLIENT_ID"),
|
||||
"client_secret": os.getenv("GOOGLE_CLIENT_SECRET"),
|
||||
"auth_url": "https://accounts.google.com/o/oauth2/v2/auth",
|
||||
"token_url": "https://oauth2.googleapis.com/token",
|
||||
"user_info_url": "https://www.googleapis.com/oauth2/v2/userinfo",
|
||||
"server_metadata_url": "https://accounts.google.com/.well-known/openid-configuration",
|
||||
"scope": "openid email profile"
|
||||
}
|
||||
```
|
||||
|
||||
**✅ Преимущества OpenID Connect:**
|
||||
- Автоматическое обнаружение endpoints через `.well-known/openid-configuration`
|
||||
- Поддержка актуальных стандартов безопасности
|
||||
- Автоматические обновления при изменениях Google API
|
||||
|
||||
### GitHub OAuth
|
||||
```python
|
||||
GITHUB_OAUTH_CONFIG = {
|
||||
@@ -170,6 +173,11 @@ GITHUB_OAUTH_CONFIG = {
|
||||
}
|
||||
```
|
||||
|
||||
**⚠️ Важные требования GitHub:**
|
||||
- Scope `user:email` **обязателен** для получения email адреса
|
||||
- Проверяйте rate limits (5000 запросов/час для авторизованных пользователей)
|
||||
- Используйте `User-Agent` header во всех запросах к API
|
||||
|
||||
### Facebook OAuth
|
||||
```python
|
||||
FACEBOOK_OAUTH_CONFIG = {
|
||||
@@ -178,10 +186,17 @@ FACEBOOK_OAUTH_CONFIG = {
|
||||
"auth_url": "https://www.facebook.com/v18.0/dialog/oauth",
|
||||
"token_url": "https://graph.facebook.com/v18.0/oauth/access_token",
|
||||
"user_info_url": "https://graph.facebook.com/v18.0/me",
|
||||
"scope": "email public_profile"
|
||||
"scope": "email public_profile",
|
||||
"token_endpoint_auth_method": "client_secret_post" # Требование Facebook
|
||||
}
|
||||
```
|
||||
|
||||
**⚠️ Важные требования Facebook:**
|
||||
- Используйте **минимум API v18.0**
|
||||
- Обязательно настройте **точные Redirect URIs** в Facebook App
|
||||
- Приложение должно быть в режиме **"Live"** для работы с реальными пользователями
|
||||
- **HTTPS обязателен** для production окружения
|
||||
|
||||
### VK OAuth
|
||||
```python
|
||||
VK_OAUTH_CONFIG = {
|
||||
@@ -190,7 +205,16 @@ VK_OAUTH_CONFIG = {
|
||||
"auth_url": "https://oauth.vk.com/authorize",
|
||||
"token_url": "https://oauth.vk.com/access_token",
|
||||
"user_info_url": "https://api.vk.com/method/users.get",
|
||||
"scope": "email"
|
||||
"scope": "email",
|
||||
"api_version": "5.199" # Актуальная версия API
|
||||
}
|
||||
```
|
||||
|
||||
**⚠️ Важные требования VK:**
|
||||
- Используйте **API версию 5.199+** (5.131 устарела)
|
||||
- Scope `email` необходим для получения email адреса
|
||||
- Redirect URI должен **точно совпадать** с настройками в приложении VK
|
||||
- Поддерживаются только HTTPS redirect URI в production
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user