@richiebono/rate-limit-middleware
v1.0.35
Published
Rate Limit Middleware
Downloads
50
Readme
Description
Rate Limit Implementation using Nest.
Application with implementation example:
https://github.com/richiebono/posts-api
NPM Package URL: NPM
Installation
npm i @richiebono/rate-limit-middleware
Add the following parameters to your .env file:
RATE_LIMIT_MAX_REQUEST_BY_IP=100
RATE_LIMIT_MAX_REQUEST_BY_TOKEN=200
RATE_LIMIT_WINDOW_LOG_INTERVAL=1
RATE_LIMIT_WINDOW_SIZE=24
RATE_LIMIT_UNIT_OF_TIME="hours"
REDIS_HOST="localhost"
REDIS_PORT=6379
Import the rate limit libs:
import {
PriveteRateLimitMiddleware,
PublicRateLimitMiddleware,
RateLimitModule,
RateLimitService,
configureRateLimitCacheModule
} from '@richiebono/rate-limit-middleware';
Configugure your module:
@Module({
imports: [
configureRateLimitCacheModule(),
],
providers: [RateLimitService],
})
Implement your AppModule using the follows exemple for public and private routes:
export class AppModule implements NestModule {
configure(consumer: MiddlewareConsumer) {
consumer
.apply(PriveteRateLimitMiddleware)
.exclude(
{ path: 'api', method: RequestMethod.GET },
)
.forRoutes(PostsController, AppController);
consumer
.apply(PublicRateLimitMiddleware)
.forRoutes(LoginController, RegisterController);
}
}
Support
rate-limit-middleware is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers.
Stay in touch
- Author - Richard Bono
License
Nest is MIT licensed.