51 lines
1.5 KiB
Python
51 lines
1.5 KiB
Python
"""
|
|
Configuration settings for Authentication Service
|
|
Loads environment variables and provides configuration object
|
|
"""
|
|
|
|
import os
|
|
from pydantic_settings import BaseSettings
|
|
from typing import Optional
|
|
|
|
class Settings(BaseSettings):
|
|
"""Application settings using Pydantic BaseSettings"""
|
|
|
|
# Database settings
|
|
DATABASE_URL: str = os.getenv(
|
|
"DATABASE_URL",
|
|
# If DATABASE_URL is not set, raise an error to force proper configuration
|
|
# For development, you can create a .env file with DATABASE_URL=mysql+aiomysql://user:password@host/dbname
|
|
)
|
|
|
|
# JWT settings
|
|
JWT_SECRET_KEY: str = os.getenv(
|
|
"JWT_SECRET_KEY",
|
|
# If JWT_SECRET_KEY is not set, raise an error to force proper configuration
|
|
# For development, you can create a .env file with JWT_SECRET_KEY=your-secret-key
|
|
)
|
|
JWT_ALGORITHM: str = "HS256"
|
|
JWT_EXPIRATION_HOURS: int = 24
|
|
|
|
# Security settings
|
|
BCRYPT_ROUNDS: int = 12
|
|
|
|
# Application settings
|
|
APP_NAME: str = "Weibo-HotSign Authentication Service"
|
|
DEBUG: bool = os.getenv("DEBUG", "False").lower() == "true"
|
|
HOST: str = os.getenv("HOST", "0.0.0.0")
|
|
PORT: int = int(os.getenv("PORT", 8000))
|
|
|
|
# CORS settings
|
|
ALLOWED_ORIGINS: list = [
|
|
"http://localhost:3000",
|
|
"http://localhost:80",
|
|
"http://127.0.0.1:3000"
|
|
]
|
|
|
|
class Config:
|
|
case_sensitive = True
|
|
env_file = ".env"
|
|
|
|
# Create global settings instance
|
|
settings = Settings()
|