ThrottleRequestsWithRedis
class ThrottleRequestsWithRedis extends ThrottleRequests (View source)
Traits
InteractsWithTime |
Properties
protected RateLimiter | $limiter | The rate limiter instance. | from ThrottleRequests |
protected Factory | $redis | The Redis factory implementation. | |
int | $decaysAt | The timestamp of the end of the current duration. | |
int | $remaining | The number of remaining slots. |
Methods
int | secondsUntil(DateTimeInterface|DateInterval|int $delay) Get the number of seconds until the given DateTime. | from InteractsWithTime |
int | availableAt(DateTimeInterface|DateInterval|int $delay = 0) Get the "available at" UNIX timestamp. | from InteractsWithTime |
DateTimeInterface|int | parseDateInterval(DateTimeInterface|DateInterval|int $delay) If the given value is an interval, convert it to a DateTime instance. | from InteractsWithTime |
int | currentTime() Get the current system time as a UNIX timestamp. | from InteractsWithTime |
void | __construct(Factory $redis) Create a new request throttler. | |
Response | handle(Request $request, Closure $next, int|string $maxAttempts = 60, float|int $decayMinutes = 1, string $prefix = '') Handle an incoming request. | |
int | resolveMaxAttempts(Request $request, int|string $maxAttempts) Resolve the number of attempts if the user is authenticated or not. | from ThrottleRequests |
string | resolveRequestSignature(Request $request) Resolve request signature. | from ThrottleRequests |
ThrottleRequestsException | buildException(string $key, int $maxAttempts) Create a 'too many attempts' exception. | from ThrottleRequests |
int | getTimeUntilNextRetry(string $key) Get the number of seconds until the lock is released. | |
Response | addHeaders(Response $response, int $maxAttempts, int $remainingAttempts, int|null $retryAfter = null) Add the limit header information to the given response. | from ThrottleRequests |
array | getHeaders(int $maxAttempts, int $remainingAttempts, int|null $retryAfter = null) Get the limit headers information. | from ThrottleRequests |
int | calculateRemainingAttempts(string $key, int $maxAttempts, int|null $retryAfter = null) Calculate the number of remaining attempts. | |
mixed | tooManyAttempts(string $key, int $maxAttempts, int $decayMinutes) Determine if the given key has been "accessed" too many times. |
Details
protected int secondsUntil(DateTimeInterface|DateInterval|int $delay)
Get the number of seconds until the given DateTime.
protected int availableAt(DateTimeInterface|DateInterval|int $delay = 0)
Get the "available at" UNIX timestamp.
protected DateTimeInterface|int parseDateInterval(DateTimeInterface|DateInterval|int $delay)
If the given value is an interval, convert it to a DateTime instance.
protected int currentTime()
Get the current system time as a UNIX timestamp.
void __construct(Factory $redis)
Create a new request throttler.
Response handle(Request $request, Closure $next, int|string $maxAttempts = 60, float|int $decayMinutes = 1, string $prefix = '')
Handle an incoming request.
protected int resolveMaxAttempts(Request $request, int|string $maxAttempts)
Resolve the number of attempts if the user is authenticated or not.
protected string resolveRequestSignature(Request $request)
Resolve request signature.
protected ThrottleRequestsException buildException(string $key, int $maxAttempts)
Create a 'too many attempts' exception.
protected int getTimeUntilNextRetry(string $key)
Get the number of seconds until the lock is released.
protected Response addHeaders(Response $response, int $maxAttempts, int $remainingAttempts, int|null $retryAfter = null)
Add the limit header information to the given response.
protected array getHeaders(int $maxAttempts, int $remainingAttempts, int|null $retryAfter = null)
Get the limit headers information.
protected int calculateRemainingAttempts(string $key, int $maxAttempts, int|null $retryAfter = null)
Calculate the number of remaining attempts.
protected mixed tooManyAttempts(string $key, int $maxAttempts, int $decayMinutes)
Determine if the given key has been "accessed" too many times.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/7.x/Illuminate/Routing/Middleware/ThrottleRequestsWithRedis.html