Does anyone have info on how to implement the ThrottleRequest middleware in Laravel 5.5?
I'm not clear on the meaning of the decayMinutes parameter in particular: https://laravel.com/api/5.5/Illuminate/Routing/Middleware/ThrottleRequests.html
I understand how to apply it to a route, I just am not sure what reaosnable parameters would be.
I understand decayMinutes as the retention time. For intance, if you want to give a 10 try to login with wrong password but if he tries for 11 times, the user gets blocked for the number of minutes specified in decayMinutes. If you specify 10 minutes as your decayMinutes, the user is blocked for 10 minutes
decayMinutes - it's a time within your limit will be counted. Technically limits is a value with TTL (Time To Live) $decayMinutes * 60 secs in cache that increments on every hit. When TTL is over value automatically will be destroyed in cache and new hits count will be start.
Look at RateLimit::hit() code. It's pretty clear:
/**
* Increment the counter for a given key for a given decay time.
*
* @param string $key
* @param float|int $decayMinutes
* @return int
*/
public function hit($key, $decayMinutes = 1)
{
$this->cache->add(
$key.':timer', $this->availableAt($decayMinutes * 60), $decayMinutes
);
$added = $this->cache->add($key, 0, $decayMinutes);
$hits = (int) $this->cache->increment($key);
if (! $added && $hits == 1) {
$this->cache->put($key, 1, $decayMinutes);
}
return $hits;
}
If you want to limit some activity by 10 hits per 5 minutes, than decayMinutes must be 5.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With