[express-ipfilter]
- winston daily log 와 같이 사용할 경우 error 라고 해서 uncaughtException 로그에 남지는 않는다.
- npm install express-ipfilter
- 다른 라우터보다 위에 위치해야 합니다.
var ipfilter = require('express-ipfilter').IpFilter;
var IpDeniedError = require('express-ipfilter').IpDeniedError;
// 차단, 허용할 특정 아이피 목록
var ips = ['192.168.0.10', '192.168.0.11'];
// 범위 사용 예시
// 192.168.0.10 ~ 192.168.0.20 안의 범위와 192.168.0.100 차단 or 허용,
// var ips = [['192.168.0.10', '192.168.0.20'], '192.168.0.100'];
// ips 목록의 ip들만 허용
app.use(ipfilter(ips, {mode: 'allow'}));
// ips 목록의 ip들 차단
// app.use(ipfilter(ips));
app.use(function(err, req, res, _next) {
//console.log('Error handler', err);
res.send('Access Denied'); // page view 'Access Denied'
if(err instanceof IpDeniedError){
res.status(401).end();
}else{
res.status(err.status || 500).end();
}
// res.render('error', {
// message: 'You shall not pass',
// error: err
// });
});
..........
app.get('/', function(req, res){
res.send('allowed IP');
});
'Programming > Node.js' 카테고리의 다른 글
[Node.js] winston Daily 로그 남기기 (0) | 2018.05.21 |
---|