package auth import ( "os" "strconv" ) type Config struct { OAuthEnabled bool OAuthIssuer string OAuthClientID string OAuthClientSecret string OAuthRedirectURI string JWTSecret []byte JWTExpiry int RefreshTokenExpiry int } func LoadConfig() *Config { enabled, _ := strconv.ParseBool(getEnv("OAUTH_ENABLED", "false")) jwtExpiry, _ := strconv.Atoi(getEnv("JWT_EXPIRY", "3600")) refreshExpiry, _ := strconv.Atoi(getEnv("REFRESH_TOKEN_EXPIRY", "604800")) return &Config{ OAuthEnabled: enabled, OAuthIssuer: getEnv("OAUTH_ISSUER", ""), OAuthClientID: getEnv("OAUTH_CLIENT_ID", ""), OAuthClientSecret: getEnv("OAUTH_CLIENT_SECRET", ""), OAuthRedirectURI: getEnv("OAUTH_REDIRECT_URI", ""), JWTSecret: []byte(getEnv("JWT_SECRET", "change-me-in-production")), JWTExpiry: jwtExpiry, RefreshTokenExpiry: refreshExpiry, } } func getEnv(key, fallback string) string { if value := os.Getenv(key); value != "" { return value } return fallback }