diff --git a/backend/docker-compose.yml b/backend/docker-compose.yml index 12da7e5..6dfb274 100644 --- a/backend/docker-compose.yml +++ b/backend/docker-compose.yml @@ -509,13 +509,14 @@ services: - JWT_ACCESS_EXPIRY=15m - JWT_REFRESH_SECRET=dev-refresh-secret-change-in-production - JWT_REFRESH_EXPIRY=7d + - SMS_ENABLED=${SMS_ENABLED:-false} + - SMS_CODE_EXPIRE_SECONDS=300 + - SMS_DAILY_LIMIT=10 depends_on: postgres: condition: service_healthy redis: condition: service_healthy - kafka: - condition: service_healthy networks: - genex-network diff --git a/backend/migrations/044_add_users_version_column.sql b/backend/migrations/044_add_users_version_column.sql new file mode 100644 index 0000000..843b420 --- /dev/null +++ b/backend/migrations/044_add_users_version_column.sql @@ -0,0 +1,3 @@ +-- 044: Add version column for TypeORM optimistic locking +ALTER TABLE users + ADD COLUMN IF NOT EXISTS version INT NOT NULL DEFAULT 1; diff --git a/backend/services/auth-service/.env.example b/backend/services/auth-service/.env.example new file mode 100644 index 0000000..0cb778d --- /dev/null +++ b/backend/services/auth-service/.env.example @@ -0,0 +1,34 @@ +# ── Database ── +DB_HOST=localhost +DB_PORT=5432 +DB_USERNAME=genex +DB_PASSWORD=genex_dev_password +DB_NAME=genex + +# ── Redis ── +REDIS_HOST=localhost +REDIS_PORT=6379 + +# ── JWT ── +JWT_ACCESS_SECRET=dev-access-secret-change-in-production +JWT_ACCESS_EXPIRY=15m +JWT_REFRESH_SECRET=dev-refresh-secret-change-in-production +JWT_REFRESH_EXPIRY=7d + +# ── SMS ── +SMS_ENABLED=false +SMS_CODE_EXPIRE_SECONDS=300 +SMS_DAILY_LIMIT=10 +SMS_MAX_VERIFY_ATTEMPTS=5 + +# ── Aliyun SMS (only when SMS_ENABLED=true) ── +# ALIYUN_ACCESS_KEY_ID= +# ALIYUN_ACCESS_KEY_SECRET= +# ALIYUN_SMS_SIGN_NAME=券金融 +# ALIYUN_SMS_TEMPLATE_CODE=SMS_123456789 + +# ── Kafka (optional, events silently skipped if unavailable) ── +KAFKA_BROKERS=localhost:9092 + +# ── Service ── +PORT=3010