feat: add rate limiting middleware and role-based access control

This commit is contained in:
2026-01-12 23:39:05 +03:00
parent 85153e8c02
commit 8f2477b25e
2 changed files with 32 additions and 0 deletions
+11
View File
@@ -0,0 +1,11 @@
import rateLimit from "express-rate-limit";
export const authRateLimiter = rateLimit({
windowMs: 15 * 60 * 1000, // 15 minutes
max: 20,
standardHeaders: true,
legacyHeaders: false,
message: {
message: "Too many requests, please try again later",
},
});
+21
View File
@@ -0,0 +1,21 @@
import type { Request, Response, NextFunction } from "express";
export function requireRole(role: "admin" | "customer") {
return (req: Request, _res: Response, next: NextFunction) => {
if (!req.user) {
return next({
statusCode: 401,
message: "Unauthenticated",
});
}
if (req.user.role !== role) {
return next({
statusCode: 403,
message: "Forbidden",
});
}
next();
};
}