koa-ratelimit-promises
Rate limiter middleware for Koa (with Promises), built for CrocodileJS.
Install
npm install --save koa-ratelimit-promises
Usage
;;; const app = ; // apply rate limitapp; // response middlewareapp; app;console;
Options
db
- redis connection instancemax
- max requests withinduration
(default is2500
)duration
- of limit in milliseconds (default is3600000
)id
- id to compare requests [ip]whitelist
- array of ids to whitelistblacklist
- array of ids to blacklist
Responses
Example 200 with header fields:
HTTP/1.1 200 OKX-Powered-By: koaX-RateLimit-Limit: 100X-RateLimit-Remaining: 99X-RateLimit-Reset: 1384377793Content-Type: text/plain; charset=utf-8Content-Length: 6Date: Wed, 13 Nov 2013 21:22:13 GMTConnection: keep-alive Stuff!
Example 429 response:
HTTP/1.1 429 Too Many RequestsX-Powered-By: koaX-RateLimit-Limit: 100X-RateLimit-Remaining: 0X-RateLimit-Reset: 1384377716Content-Type: text/plain; charset=utf-8Content-Length: 39Retry-After: 7Date: Wed, 13 Nov 2013 21:21:48 GMTConnection: keep-alive Rate limit exceeded, retry in 8 seconds