在Laravel 8中,您可以使用RateLimiter
中的RateLimiter::for('api', function (Request $request) {
return Limit::perMinute(60)->by($request->ip())->response(function () {
return response('Too many attempts for IP '.$request->ip(), 429);
});
});
对象来定义更精细的速率限制,例如通过IP:
routes/web
我想知道是否可以像在{slug}
中那样访问Route参数,例如使用Route::get('/blog/{slug}', [BlogController::class, 'singlePost']);
:
RateLimiter
,然后在RateLimiter::for('api', function (Request $request) {
return Limit::perMinute(60)->by($slug)->response(function () {
return response('Too many attempts for IP '.$request->ip(), 429);
});
});
中使用它,例如:
$request->route('slug')
我尝试了dd()
,但是我发现很难弄清楚它是否确实有效(RateLimiter
中的{{1}}不能)