This commit is contained in:
@@ -160,7 +160,7 @@ core/
|
||||
### Environment Variables
|
||||
- `DATABASE_URL` - Database connection string
|
||||
- `REDIS_URL` - Redis connection string
|
||||
- `JWT_SECRET` - JWT signing secret
|
||||
- `JWT_SECRET_KEY` - JWT signing secret
|
||||
- `OAUTH_*` - OAuth provider credentials
|
||||
|
||||
### Database
|
||||
|
||||
@@ -242,7 +242,7 @@ SESSION_COOKIE_SAMESITE=lax
|
||||
SESSION_COOKIE_MAX_AGE=2592000 # 30 дней
|
||||
|
||||
# JWT
|
||||
JWT_SECRET=your_jwt_secret_key
|
||||
JWT_SECRET_KEY=your_jwt_secret_key
|
||||
JWT_EXPIRATION_HOURS=720 # 30 дней
|
||||
|
||||
# Redis
|
||||
|
||||
@@ -520,7 +520,7 @@ async def test_redis_integration():
|
||||
### Подготовка
|
||||
- [ ] Настроен Redis connection pool с теми же параметрами
|
||||
- [ ] Установлены зависимости: `auth.tokens.*`, `auth.utils`
|
||||
- [ ] Настроены environment variables (JWT_SECRET, REDIS_URL)
|
||||
- [ ] Настроены environment variables (JWT_SECRET_KEY, REDIS_URL)
|
||||
|
||||
### Реализация
|
||||
- [ ] Реализована функция извлечения токенов из запросов
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
```python
|
||||
# settings.py
|
||||
JWT_ALGORITHM = "HS256" # HMAC with SHA-256
|
||||
JWT_SECRET = os.getenv("JWT_SECRET") # Минимум 256 бит
|
||||
JWT_SECRET_KEY = os.getenv("JWT_SECRET_KEY") # Минимум 256 бит
|
||||
JWT_EXPIRATION_DELTA = 30 * 24 * 60 * 60 # 30 дней
|
||||
```
|
||||
|
||||
@@ -439,7 +439,7 @@ async def detect_anomalies(user_id: str, event_type: str, ip_address: str):
|
||||
### Environment Variables
|
||||
```bash
|
||||
# JWT Security
|
||||
JWT_SECRET=your_super_secret_key_minimum_256_bits
|
||||
JWT_SECRET_KEY=your_super_secret_key_minimum_256_bits
|
||||
JWT_ALGORITHM=HS256
|
||||
JWT_EXPIRATION_HOURS=720
|
||||
|
||||
|
||||
@@ -281,7 +281,7 @@ async def delete_session(token: str) -> bool:
|
||||
|
||||
### JWT токены
|
||||
- **Алгоритм**: HS256
|
||||
- **Secret**: Из переменной окружения JWT_SECRET
|
||||
- **Secret**: Из переменной окружения JWT_SECRET_KEY
|
||||
- **Payload**: `{user_id, username, iat, exp}`
|
||||
- **Expiration**: 30 дней (настраивается)
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
```bash
|
||||
# JWT настройки
|
||||
JWT_SECRET=your_super_secret_key_minimum_256_bits
|
||||
JWT_SECRET_KEY=your_super_secret_key_minimum_256_bits
|
||||
JWT_ALGORITHM=HS256
|
||||
JWT_EXPIRATION_HOURS=720 # 30 дней
|
||||
|
||||
@@ -69,7 +69,7 @@ LOCKOUT_DURATION=1800 # 30 минут
|
||||
# Проверка переменных окружения
|
||||
python -c "
|
||||
import os
|
||||
required = ['JWT_SECRET', 'REDIS_URL', 'GOOGLE_CLIENT_ID']
|
||||
required = ['JWT_SECRET_KEY', 'REDIS_URL', 'GOOGLE_CLIENT_ID']
|
||||
for var in required:
|
||||
print(f'{var}: {\"✅\" if os.getenv(var) else \"❌\"}')"
|
||||
|
||||
@@ -213,7 +213,7 @@ ab -n 1000 -c 10 -p login.json -T application/json http://localhost:8000/graphql
|
||||
### Docker
|
||||
```dockerfile
|
||||
# Dockerfile
|
||||
ENV JWT_SECRET=your_secret_here
|
||||
ENV JWT_SECRET_KEY=your_secret_here
|
||||
ENV REDIS_URL=redis://redis:6379/0
|
||||
ENV SESSION_COOKIE_SECURE=true
|
||||
```
|
||||
@@ -221,8 +221,8 @@ ENV SESSION_COOKIE_SECURE=true
|
||||
### Dokku/Heroku
|
||||
```bash
|
||||
# Установка переменных окружения
|
||||
dokku config:set myapp JWT_SECRET=xxx REDIS_URL=yyy
|
||||
heroku config:set JWT_SECRET=xxx REDIS_URL=yyy
|
||||
dokku config:set myapp JWT_SECRET_KEY=xxx REDIS_URL=yyy
|
||||
heroku config:set JWT_SECRET_KEY=xxx REDIS_URL=yyy
|
||||
```
|
||||
|
||||
### Nginx настройки
|
||||
|
||||
@@ -330,7 +330,7 @@ OAuth данные хранятся в JSON поле `oauth` модели `Autho
|
||||
### Переменные окружения
|
||||
```bash
|
||||
# JWT настройки
|
||||
JWT_SECRET=your_super_secret_key
|
||||
JWT_SECRET_KEY=your_super_secret_key
|
||||
JWT_EXPIRATION_HOURS=720 # 30 дней
|
||||
|
||||
# Redis подключение
|
||||
|
||||
@@ -819,7 +819,7 @@ jobs:
|
||||
pytest tests/auth/e2e/ -m e2e
|
||||
env:
|
||||
REDIS_URL: redis://localhost:6379/0
|
||||
JWT_SECRET: test_secret_key_for_ci
|
||||
JWT_SECRET_KEY: test_secret_key_for_ci
|
||||
|
||||
- name: Upload coverage
|
||||
uses: codecov/codecov-action@v3
|
||||
|
||||
@@ -127,7 +127,7 @@ env_vars:{variable_name} # STRING - значение перемен
|
||||
|
||||
### Примеры переменных
|
||||
```redis
|
||||
GET env_vars:JWT_SECRET # Секретный ключ JWT
|
||||
GET env_vars:JWT_SECRET_KEY # Секретный ключ JWT
|
||||
GET env_vars:REDIS_URL # URL Redis
|
||||
GET env_vars:OAUTH_GOOGLE_CLIENT_ID # Google OAuth Client ID
|
||||
GET env_vars:FEATURE_REGISTRATION # Флаг функции регистрации
|
||||
@@ -135,7 +135,7 @@ GET env_vars:FEATURE_REGISTRATION # Флаг функции регистра
|
||||
|
||||
**Категории переменных**:
|
||||
- **database**: DB_URL, POSTGRES_*
|
||||
- **auth**: JWT_SECRET, OAUTH_*
|
||||
- **auth**: JWT_SECRET_KEY, OAUTH_*
|
||||
- **redis**: REDIS_URL, REDIS_HOST, REDIS_PORT
|
||||
- **search**: SEARCH_*
|
||||
- **integrations**: GOOGLE_ANALYTICS_ID, SENTRY_DSN, SMTP_*
|
||||
|
||||
@@ -76,7 +76,7 @@ OAUTH_CLIENTS = {
|
||||
}
|
||||
|
||||
# Настройки JWT
|
||||
JWT_SECRET = os.getenv("JWT_SECRET", "your-secret-key")
|
||||
JWT_SECRET_KEY = os.getenv("JWT_SECRET_KEY", "your-secret-key")
|
||||
JWT_ACCESS_TOKEN_EXPIRE_MINUTES = 30
|
||||
JWT_REFRESH_TOKEN_EXPIRE_DAYS = int(environ.get("JWT_REFRESH_TOKEN_EXPIRE_DAYS", "30"))
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@ class EnvService:
|
||||
"POSTGRES_HOST": "database",
|
||||
"POSTGRES_PORT": "database",
|
||||
# Auth
|
||||
"JWT_SECRET": "auth",
|
||||
"JWT_SECRET_KEY": "auth",
|
||||
"JWT_ALGORITHM": "auth",
|
||||
"JWT_EXPIRATION": "auth",
|
||||
"SECRET_KEY": "auth",
|
||||
@@ -103,7 +103,7 @@ class EnvService:
|
||||
|
||||
# Секретные переменные (не показываем их значения в UI)
|
||||
SECRET_VARIABLES: ClassVar[set[str]] = {
|
||||
"JWT_SECRET",
|
||||
"JWT_SECRET_KEY",
|
||||
"SECRET_KEY",
|
||||
"AUTH_SECRET",
|
||||
"OAUTH_GOOGLE_CLIENT_SECRET",
|
||||
@@ -127,7 +127,7 @@ class EnvService:
|
||||
"POSTGRES_DB": "Имя базы данных PostgreSQL",
|
||||
"POSTGRES_HOST": "Хост PostgreSQL",
|
||||
"POSTGRES_PORT": "Порт PostgreSQL",
|
||||
"JWT_SECRET": "Секретный ключ для JWT токенов",
|
||||
"JWT_SECRET_KEY": "Секретный ключ для JWT токенов",
|
||||
"JWT_ALGORITHM": "Алгоритм подписи JWT",
|
||||
"JWT_EXPIRATION": "Время жизни JWT токенов",
|
||||
"SECRET_KEY": "Секретный ключ приложения",
|
||||
|
||||
Reference in New Issue
Block a user