diff --git a/src/app.ts b/src/app.ts index 7b4316a3..9ef0f70b 100644 --- a/src/app.ts +++ b/src/app.ts @@ -178,7 +178,7 @@ const publicFiles = serveStatic({ root: './public/' }); const staticFiles = serveStatic({ root: './static/' }); app.use('*', cacheControlMiddleware({ noStore: true })); -app.use('*', rateLimitMiddleware(300, Time.minutes(5))); +app.use('*', rateLimitMiddleware(300, Time.minutes(5), false)); app.use('/api/*', metricsMiddleware, paginationMiddleware, logger(debug)); app.use('/.well-known/*', metricsMiddleware, logger(debug)); diff --git a/src/middleware/rateLimitMiddleware.ts b/src/middleware/rateLimitMiddleware.ts index e21d8000..e7a43328 100644 --- a/src/middleware/rateLimitMiddleware.ts +++ b/src/middleware/rateLimitMiddleware.ts @@ -4,11 +4,12 @@ import { rateLimiter } from 'hono-rate-limiter'; /** * Rate limit middleware for Hono, based on [`hono-rate-limiter`](https://github.com/rhinobase/hono-rate-limiter). */ -export function rateLimitMiddleware(limit: number, windowMs: number): MiddlewareHandler { +export function rateLimitMiddleware(limit: number, windowMs: number, includeHeaders?: boolean): MiddlewareHandler { // @ts-ignore Mismatched hono versions. return rateLimiter({ limit, windowMs, + standardHeaders: includeHeaders, handler: (c) => { c.header('Cache-Control', 'no-store'); return c.text('Too many requests, please try again later.', 429);