🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
>[info] 路由分组 ~~~ Route::prefix('weapp')->namespace('Api\Weapp')->name('api.weapp.')->group(function () { // 登录相关路由 Route::middleware('throttle:' . config('api.rate_limits.sign')) ->group(function () { }); // 访问相关路由 Route::middleware('throttle:' . config('api.rate_limits.access')) ->group(function () { // 游客可以访问的接口 // 比如某个用户的详情 // Route::get('users/{user}', 'UsersController@show') // ->name('users.show'); // 登录后可以访问的接口 Route::middleware('auth:api')->group(function () { // 比如手机号授权 }); }); }); ~~~ 添加调用频率限制 新建`config/api.php`,代码如下: ~~~ return [ /* * 接口频率限制 */ 'rate_limits' => [ // 访问频率限制,次数/分钟 'access' => env('RATE_LIMITS', '60,1'), // 登录相关,次数/分钟 'sign' => env('SIGN_RATE_LIMITS', '60,1'), ], ]; ~~~ 除了登录相关的接口,其他接口我们放在 access 这个频率限制的分组中,也就是剩下要完成的接口,统一 1 分钟只能调 用 60 次。 ***** 这里我们设计了两个接口: 1. 某个用户的信息 2. 当前登录用户的信息 ***** 当前登录用户也就是请求通过sanctum(laravel8 扩展)验证 的用户,我们使用`auth:api`中间件验证用户的 sanctum 是否合法。这样就将接口继续分为了两类: * 游客可以访问的接口; * 登录用户才可以访问的接口。