@lightring/express-key-rate-limiter

1.0.1 • Public • Published

express-key-rate-limiter

express-key-rate-limiter is a Node.js middleware library for Express applications, designed to provide flexible and efficient rate limiting based on app keys. It allows you to define different rate limits for users with a valid app key and those without, enhancing control over how your API resources are consumed.

Features

  • Dual Rate Limiting: Set distinct rate limits for users with valid app keys and those without, providing preferential access or enhanced limits to authorized users.
  • Customizable Limits: Easily configure time windows and request count limits separately for both user groups.
  • App Key Validation: Includes simple yet effective in-memory key validation for quick lookups.
  • Easy Integration: Seamlessly integrates with existing Express applications.
  • Scalable and Lightweight: Designed with efficiency in mind, ensuring minimal impact on your application's performance.

Installation

Install the library with npm:

npm i @lightring/express-key-rate-limiter

Usage

Import and use the middleware in your Express application:

const express = require("express");
const keyRateLimiter = require("@lightring/express-key-rate-limiter");

const app = express();

app.use(
  keyRateLimiter({
    validKeys: ["key1", "key2"],
    extendedLimit: { windowMs: 15 * 60 * 1000, max: 200 }, // Rate limit for valid app key users
    defaultLimit: { windowMs: 15 * 60 * 1000, max: 100 }, // Rate limit for other users
  })
);

// ... rest of the Express app setup

app.listen(3000, () => console.log("Server running on port 3000"));

Configuration

The middleware accepts an options object with the following properties:

  • validKeys (Array): An array of strings representing valid app keys.
  • extendedLimit (Object): Configuration object for express-rate-limit, applied to users with a valid app key.
  • defaultLimit (Object): Configuration object for express-rate-limit, applied to users without a valid app key.

License

Distributed under the MIT License. See LICENSE for more information.

Readme

Keywords

none

Package Sidebar

Install

npm i @lightring/express-key-rate-limiter

Weekly Downloads

1

Version

1.0.1

License

ISC

Unpacked Size

3.77 kB

Total Files

3

Last publish

Collaborators

  • mmj.lrt