teppokoivula / request-throttle
ProcessWire module that throttles requests for named resources
Package info
github.com/teppokoivula/RequestThrottle
Type:pw-module
pkg:composer/teppokoivula/request-throttle
0.0.5
2026-04-15 17:24 UTC
Requires
- php: >=7.1
- processwire/processwire: >=3.0.184
- wireframe-framework/processwire-composer-installer: ^1.0.0
README
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.
Getting started
- 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.
Usage
// 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 minutes
License
This project is licensed under the MIT License.