我正在尝试将某个端点的使用限制为每个用户每天 10 次,并且我可以了解如何做到每分钟一定次数。请注意,这是在控制器内,而不是作为中间件。
$executed = RateLimiter::attempt(
'user-send-test-' . Auth::user()->id,
$perDay = 10,
function () {
// some process
}
);
要每天使用速率限制器,请使用方法
attemp()
的第四个参数,即衰减(需要计算一次尝试的时间),但我从未测试过它。
$executed = RateLimiter::attempt(
'user-send-test-' . Auth::user()->id,
$perMinute = 10,
function () {
// some process
},
60*60*24 // or 86400
);
如果您仍然遇到此示例的问题,我建议您复制
RateLimiter
类,因为它非常小并调整其代码。