| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- <?php
- return [
- /*
- |--------------------------------------------------------------------------
- | OpenAPI模块配置
- |--------------------------------------------------------------------------
- |
- | OpenAPI模块的基础配置选项,专注于后台管理功能
- |
- */
- // 模块基础配置
- 'module' => [
- 'name' => 'OpenAPI',
- 'version' => '1.0.0',
- 'description' => '对外开放API管理模块',
- 'author' => 'System',
- ],
- // 应用配置
- 'app' => [
- 'auto_approve' => false, // 是否自动审核通过
- 'default_status' => 'PENDING',
- 'expire_days' => 365, // 应用过期天数
- 'max_apps_per_user' => 10,
- 'required_fields' => [
- 'name',
- 'description',
- 'callback_url',
- ],
- 'optional_fields' => [
- 'website',
- 'logo',
- 'contact_email',
- ],
- ],
- // API密钥配置
- 'api_key' => [
- 'length' => 32,
- 'prefix' => 'ak_',
- 'secret_length' => 64,
- 'secret_prefix' => 'sk_',
- 'auto_generate' => true,
- 'allow_regenerate' => true,
- 'expire_days' => 0, // 0表示永不过期
- ],
- // 认证配置
- 'auth' => [
- // JWT配置
- 'jwt' => [
- 'secret' => env('OPENAPI_JWT_SECRET', env('APP_KEY')),
- 'ttl' => env('OPENAPI_JWT_TTL', 3600), // 1小时
- 'refresh_ttl' => env('OPENAPI_JWT_REFRESH_TTL', 86400), // 24小时
- 'algorithm' => 'HS256',
- ],
- // 签名认证配置
- 'signature' => [
- 'enabled' => env('OPENAPI_SIGNATURE_ENABLED', true),
- 'timeout' => env('OPENAPI_SIGNATURE_TIMEOUT', 300), // 5分钟
- 'algorithm' => 'sha256',
- ],
- ],
- // 频率限制配置
- 'rate_limit' => [
- // 默认限制
- 'default' => [
- 'requests_per_minute' => env('OPENAPI_RATE_LIMIT_PER_MINUTE', 60),
- 'requests_per_hour' => env('OPENAPI_RATE_LIMIT_PER_HOUR', 1000),
- 'requests_per_day' => env('OPENAPI_RATE_LIMIT_PER_DAY', 10000),
- 'requests_per_week' => env('OPENAPI_RATE_LIMIT_PER_WEEK', 50000),
- 'requests_per_month' => env('OPENAPI_RATE_LIMIT_PER_MONTH', 200000),
- ],
- // VIP用户限制
- 'vip' => [
- 'requests_per_minute' => env('OPENAPI_VIP_RATE_LIMIT_PER_MINUTE', 120),
- 'requests_per_hour' => env('OPENAPI_VIP_RATE_LIMIT_PER_HOUR', 5000),
- 'requests_per_day' => env('OPENAPI_VIP_RATE_LIMIT_PER_DAY', 50000),
- 'requests_per_week' => env('OPENAPI_VIP_RATE_LIMIT_PER_WEEK', 250000),
- 'requests_per_month' => env('OPENAPI_VIP_RATE_LIMIT_PER_MONTH', 1000000),
- ],
- // IP封禁配置
- 'ip_ban' => [
- 'enabled' => env('OPENAPI_IP_BAN_ENABLED', true),
- 'threshold' => env('OPENAPI_IP_BAN_THRESHOLD', 10), // 连续违规次数
- 'duration' => env('OPENAPI_IP_BAN_DURATION', 3600), // 封禁时长(秒)
- ],
- ],
- // Webhook配置
- 'webhook' => [
- 'default_timeout' => env('OPENAPI_WEBHOOK_TIMEOUT', 30),
- 'default_retry_count' => env('OPENAPI_WEBHOOK_RETRY_COUNT', 3),
- 'max_retry_count' => env('OPENAPI_WEBHOOK_MAX_RETRY_COUNT', 10),
- // 重试配置
- 'retry' => [
- 'enabled' => env('OPENAPI_WEBHOOK_RETRY_ENABLED', true),
- 'delay_base' => env('OPENAPI_WEBHOOK_RETRY_DELAY_BASE', 10), // 基础延迟(秒)
- 'delay_max' => env('OPENAPI_WEBHOOK_RETRY_DELAY_MAX', 300), // 最大延迟(秒)
- 'backoff_multiplier' => env('OPENAPI_WEBHOOK_BACKOFF_MULTIPLIER', 2),
- ],
- // 支持的事件类型
- 'events' => [
- 'user.created',
- 'user.updated',
- 'user.deleted',
- 'game.started',
- 'game.finished',
- 'item.created',
- 'item.updated',
- 'fund.deposited',
- 'fund.withdrawn',
- 'trade.created',
- 'trade.completed',
- 'system.maintenance',
- ],
- ],
- // 日志配置
- 'logging' => [
- 'enabled' => env('OPENAPI_LOGGING_ENABLED', true),
- 'retention_days' => env('OPENAPI_LOG_RETENTION_DAYS', 30),
- 'log_request_body' => env('OPENAPI_LOG_REQUEST_BODY', false),
- 'log_response_body' => env('OPENAPI_LOG_RESPONSE_BODY', false),
- 'max_body_size' => env('OPENAPI_LOG_MAX_BODY_SIZE', 10240), // 10KB
- // 敏感字段(不记录到日志中)
- 'sensitive_fields' => [
- 'password',
- 'secret',
- 'token',
- 'key',
- 'authorization',
- ],
- ],
- // 统计配置
- 'stats' => [
- 'enabled' => env('OPENAPI_STATS_ENABLED', true),
- 'retention_days' => env('OPENAPI_STATS_RETENTION_DAYS', 365),
- 'realtime' => env('OPENAPI_STATS_REALTIME', false),
- 'aggregation_levels' => ['hour', 'day', 'week', 'month'],
- // 自动清理配置
- 'auto_cleanup' => [
- 'enabled' => env('OPENAPI_STATS_AUTO_CLEANUP', true),
- 'schedule' => '0 2 * * *', // 每天凌晨2点
- ],
- ],
- // 安全配置
- 'security' => [
- // IP白名单
- 'ip_whitelist' => [
- 'enabled' => env('OPENAPI_IP_WHITELIST_ENABLED', false),
- 'strict_mode' => env('OPENAPI_IP_WHITELIST_STRICT', false),
- ],
- // CORS配置
- 'cors' => [
- 'enabled' => env('OPENAPI_CORS_ENABLED', true),
- 'allowed_origins' => env('OPENAPI_CORS_ALLOWED_ORIGINS', '*'),
- 'allowed_methods' => env('OPENAPI_CORS_ALLOWED_METHODS', 'GET,POST,PUT,DELETE,OPTIONS'),
- 'allowed_headers' => env('OPENAPI_CORS_ALLOWED_HEADERS', 'Content-Type,Authorization,X-Requested-With'),
- ],
- ],
- // 缓存配置
- 'cache' => [
- 'driver' => env('OPENAPI_CACHE_DRIVER', 'redis'),
- 'prefix' => env('OPENAPI_CACHE_PREFIX', 'openapi:'),
- 'ttl' => env('OPENAPI_CACHE_TTL', 3600),
- 'app_ttl' => env('OPENAPI_CACHE_APP_TTL', 3600),
- 'scope_ttl' => env('OPENAPI_CACHE_SCOPE_TTL', 3600),
- ],
- ];
|