본문 바로가기
Programming/Node.js

[Node.js][Express] ip validator middleware 만들기

by guru_k 2023. 4. 24.
728x90
반응형

Express Framework  에서 미들웨어를 추가하여 ip validator를 만드는법을 알아보자.

아래와 같이 파일을 생성

 middlewares/ipValidator.ts 

import { Request, Response, NextFunction } from 'express';

function validateIp(req: Request, res: Response, next: NextFunction) {
  const allowedIps = ['127.0.0.1', '::1', '192.168.0.1']; // 허용되는 IP 주소 목록
  const ipAddress = req.headers['x-forwarded-for'] as string || req.socket.remoteAddress as string;
  const validIp = allowedIps.some((ip) => ipAddress.includes(ip));
  if (!validIp) {
    return res.status(403).send('Access denied: Invalid IP address');
  }
  next();
}

 생성한 middleware를 router에서 사용

router/index.ts

app.get('/status', validateIp, (req: Request, res: Response) => {
  res.send('This is a protected route');
});

 

728x90
반응형

댓글