Request Throttle is a ProcessWire module for throttling requests to named resources based on timestamps and client fingerprints. It can be used to implement rate limiting for things like login attempts, form submissions, password resets, etc.
- Download or clone this module into your
/site/modules/directory, or install using Composer (composer require teppokoivula/request-throttle). - Install the module from the ProcessWire Admin (Modules > Site > Request Throttle).
- Configure default values for max requests, time window, and fingerprint mode via module settings, or override them per call.
// Check if a request is allowed (increments the counter automatically)
$throttle = $modules->get('RequestThrottle');
if (!$throttle->request('login')) {
// too many requests, deny access
}
// Check without incrementing the counter
if (!$throttle->requestQuietly('login')) {
// would be throttled
}
// Override defaults per call
$throttle->request('password_reset', 3, 10); // max 3 requests in 10 minutesThis project is licensed under the MIT License.