teppokoivula/request-throttle

ProcessWire module that throttles requests for named resources

Maintainers

Package info

github.com/teppokoivula/RequestThrottle

Type:pw-module

pkg:composer/teppokoivula/request-throttle

Statistics

Installs: 5

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

0.0.5 2026-04-15 17:24 UTC

This package is auto-updated.

Last update: 2026-04-17 13:10:43 UTC


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

  1. Download or clone this module into your /site/modules/ directory, or install using Composer (composer require teppokoivula/request-throttle).
  2. Install the module from the ProcessWire Admin (Modules > Site > Request Throttle).
  3. 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.