✅ 목적


📦 설치

# git pull 후에 npm i 또는 아래 실행

npm install express-rate-limit

🛠️ 사용법

export const loginLimiter = rateLimit({
  windowMs: 1 * 60 * 1000, // ✅ 제한 시간: 1분(60,000ms) 동안
  max: 5, // ✅ 해당 시간 내 최대 허용 요청 수 (5회 초과 시 차단)
  standardHeaders: true, // ✅ RateLimit 관련 응답 헤더를 표준 형식(`RateLimit-*`)으로 설정
  legacyHeaders: false, // ✅ 비표준 헤더(`X-RateLimit-*`)는 비활성화
  handler: (req, res) => {
    // ✅ 제한 초과 시 실행되는 핸들러: 커스텀 에러 응답 반환
    handleError(
      res,
      new TooManyRequestsError(
        "로그인 요청이 너무 많습니다. 1분 후 다시 시도해주세요."
      )
    );
  },
});

image.png


🚀 라우트 적용

// routes/auth.ts
authRouter.post("/sign-in", loginLimiter, postSignin);