Usage#
typescript
import { rateLimit } from '@AxilJS/security'
app.use(rateLimit({ max: 100, windowMs: 60000 }))Per-route limits#
typescript
app.post('/auth/login',
rateLimit({ max: 5, windowMs: 900000 }),
loginHandler
)Response headers: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.
Exceeding returns HTTP 429 with Retry-After header.