// +---------------------------------------------------------------------- // API 限流配置(ywxapp\middleware\RateLimit 消费,注册于 app/api/middleware.php)。 // // rules:正则(匹配 pathinfo,不区分大小写)=> ['limit' => 次数, 'window' => 窗口秒数] // 按声明顺序匹配,命中即用;limit = 0 表示该规则不限流。 // default:未命中任何规则的兜底限流。 return [ // 兜底:每 IP 每分钟 120 次(普通客户端足够,脚本刷量会被拦) 'default' => [ 'limit' => (int) env('RATELIMIT_DEFAULT', 120), 'window' => 60, ], 'rules' => [ // 登录 / 登出:防爆破 '#(login|logout)#i' => ['limit' => 10, 'window' => 60], // 注册 / 找回密码 / 重置密码:防批量注册与撞库 '#(register|retrieve|forget|reset|findpwd)#i' => ['limit' => 5, 'window' => 300], // 验证码 / 短信 / 邮件发送:防短信轰炸 '#(captcha|sms|verif|sendmail|send_?code|email)#i' => ['limit' => 5, 'window' => 60], // 支付 / 下单:防并发刷单 '#(pay|order|checkout)#i' => ['limit' => 20, 'window' => 60], ], ];