Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ethercreative/yii2-ip-ratelimiter

Allow guest clients to be rate limited, using their IP as the identifier
https://github.com/ethercreative/yii2-ip-ratelimiter

Last synced: about 2 months ago
JSON representation

Allow guest clients to be rate limited, using their IP as the identifier

Awesome Lists containing this project

README

        

![Yii2 IP Rate Limiter](resources/banner.jpg)

# yii2-ip-ratelimiter
Allow guest clients to be rate limited, using their IP as the identifier.

## Installation

The preferred way to install this extension is through [composer](http://getcomposer.org/download/).

Either run

```
php composer.phar require ethercreative/yii2-ip-ratelimiter "1.*"
```

or add

```
"ethercreative/yii2-ip-ratelimiter": "1.*"
```

to the require section of your `composer.json` file.

## Usage

Modify the bahavior method of the controller you want to rate limit

```
public function behaviors()
{
$behaviors = parent::behaviors();
$behaviors['rateLimiter'] = [
// Use class
'class' => \ethercreative\ratelimiter\RateLimiter::className(),

// The maximum number of allowed requests
'rateLimit' => 100,

// The time period for the rates to apply to
'timePeriod' => 600,

// Separate rate limiting for guests and authenticated users
// Defaults to true
// - false: use one set of rates, whether you are authenticated or not
// - true: use separate ratesfor guests and authenticated users
'separateRates' => false,

// Whether to return HTTP headers containing the current rate limiting information
'enableRateLimitHeaders' => false,
];
return $behaviors;
}
```