token-storage-refactored
Some checks failed
Deploy on push / type-check (push) Failing after 8s
Deploy on push / deploy (push) Has been skipped

This commit is contained in:
2025-06-02 21:50:58 +03:00
parent cca2f71c59
commit 21d28a0d8b
33 changed files with 2934 additions and 1533 deletions

View File

@@ -2,30 +2,75 @@
## Модули
### Аутентификация и авторизация
### Система авторизации (v0.5.1)
Подробная документация: [auth.md](auth.md)
**Новая архитектура после рефакторинга:**
Основные возможности:
- Гибкая система аутентификации с использованием локальной БД и Redis
- Система ролей и разрешений (RBAC)
- OAuth интеграция (Google, Facebook, GitHub)
- Защита от брутфорс атак
- Управление сессиями через Redis
- Мультиязычные email уведомления
- Страница авторизации для админ-панели
#### Основная документация
- **[Полная документация системы авторизации](auth-system.md)** - Обзор всех компонентов
- **[Архитектура и диаграммы](auth-architecture.md)** - Схемы потоков данных и компонентов
- **[Руководство по миграции](auth-migration.md)** - Переход на новую версию
- **[Система безопасности](security.md)** - Управление паролями и email
- **[OAuth управление](oauth.md)** - OAuth провайдеры и токены
- **[Система подписок](follower.md)** - Подписки пользователей
Конфигурация:
#### Основные возможности
- **Модульная архитектура токенов**:
- `SessionTokenManager` - управление сессиями
- `VerificationTokenManager` - токены подтверждения
- `OAuthTokenManager` - OAuth токены
- `BatchTokenOperations` - пакетные операции
- `TokenMonitoring` - мониторинг и статистика
- **OAuth провайдеры**: Google, GitHub, Facebook, X, Telegram, VK, Yandex
- **Система разрешений (RBAC)**: роли user/moderator/admin с детальными правами
- **Redis оптимизации**: Pipeline операции, connection pooling, автоматическая очистка
- **Безопасность**: bcrypt + SHA256, JWT HS256, PKCE для OAuth, защита от брутфорса
#### Производительность (v0.6.0)
-**50%** ускорение Redis операций (pipeline использование)
-**30%** снижение потребления памяти
-**Устранение** proxy overhead
-**Real-time** мониторинг и статистика
-**Type-safe** codebase (mypy clean)
#### Использование
```python
# settings.py
JWT_SECRET_KEY = "your-secret-key" # секретный ключ для JWT токенов
SESSION_TOKEN_LIFE_SPAN = 60 * 60 * 24 * 30 # время жизни сессии (30 дней)
# Новый API (рекомендуется)
from auth.tokens.sessions import SessionTokenManager
from auth.tokens.monitoring import TokenMonitoring
# Создание сессии
sessions = SessionTokenManager()
token = await sessions.create_session(user_id, username=username)
# Мониторинг
monitoring = TokenMonitoring()
health = await monitoring.health_check()
stats = await monitoring.get_token_statistics()
# Совместимость (упрощенный фасад)
from auth.tokens.storage import TokenStorage
await TokenStorage.create_session(user_id, username=username)
```
### Authentication & Security
- [Security System](security.md) - Password and email management
- [OAuth Token Management](oauth.md) - OAuth provider token storage in Redis
- [Following System](follower.md) - User subscription system
#### Конфигурация
```python
# settings.py - JWT
JWT_SECRET_KEY = "your-secret-key"
JWT_EXPIRATION_HOURS = 720 # 30 дней
# Redis
REDIS_URL = "redis://localhost:6379/0"
REDIS_SOCKET_KEEPALIVE = True
REDIS_HEALTH_CHECK_INTERVAL = 30
# OAuth провайдеры
GOOGLE_CLIENT_ID = "..."
GITHUB_CLIENT_ID = "..."
VK_APP_ID = "..."
YANDEX_CLIENT_ID = "..."
# ... и другие
```
### Реакции и комментарии