# Authentication Feature Configuration # Settings for the authentication and authorization system [features] auth = true # OAuth Configuration [oauth] enabled = false [oauth.google] client_id = "your-google-client-id" client_secret = "your-google-client-secret" redirect_uri = "http://localhost:3030/auth/google/callback" [oauth.github] client_id = "your-github-client-id" client_secret = "your-github-client-secret" redirect_uri = "http://localhost:3030/auth/github/callback" # JWT Configuration [auth.jwt] secret = "change-this-in-production-to-a-secure-random-string" expiration = 86400 # 24 hours in seconds refresh_token_expiration = 604800 # 7 days in seconds algorithm = "HS256" issuer = "rustelo-app" audience = "rustelo-users" # Password Policy [auth.password] min_length = 8 require_uppercase = true require_lowercase = true require_numbers = true require_special_chars = true max_age_days = 90 history_count = 5 # Account Security [auth.security] max_login_attempts = 5 lockout_duration = 900 # 15 minutes in seconds session_timeout = 3600 # 1 hour in seconds require_email_verification = true password_reset_timeout = 3600 # 1 hour in seconds # Two-Factor Authentication [auth.two_factor] enabled = false backup_codes_count = 10 totp_issuer = "Rustelo App" totp_digits = 6 totp_period = 30 # User Registration [auth.registration] enabled = true require_email_verification = true auto_approve = true default_role = "user" allowed_domains = [] # Empty array means all domains allowed # Session Management [auth.sessions] cleanup_interval = 3600 # 1 hour in seconds max_concurrent_sessions = 5 remember_me_duration = 2592000 # 30 days in seconds # Rate Limiting for Auth Endpoints [auth.rate_limiting] login_attempts_per_minute = 5 registration_attempts_per_hour = 3 password_reset_attempts_per_hour = 3