[0.9.22] - 2025-09-22
All checks were successful
Deploy on push / deploy (push) Successful in 9m43s

### 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:
2025-09-22 23:56:04 +03:00
parent a4411e3c86
commit d87c0c522c
4 changed files with 157 additions and 43 deletions

View File

@@ -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
}
```