只允许从node.js中的特定IP地址访问目录
我有一个简单的socket.io
应用程序,我想保护正在发送事件到其他连接的套接字的目录。
var io = require('socket.io'), connect = require('connect'); var app = connect().use(connect.static('public')).listen(3000); var children = io.listen(app);
在public
目录中,我有用户可以访问的所有文件。 public/_app
里面我有一个应用程序正在发送事件到其他连接的套接字。 这个目录应该只能从我的IP地址访问。
谢谢。
插入静态中间件之前,您可以插入自定义中间件:
var app = connect() .use(function(req, res, next) { if (req.url.indexOf('/_app/') === 0) // YOUR 'HIDDEN' PATH { var ipnumber = req.socket.address().address; if (ipnumber !== '127.0.0.1') // YOUR IP NUMBER { res.writeHead(404); return res.end(); } } next(); }) .use(connect.static('public')) .listen(3000);
当一个无效的IP号码试图访问您的pipe理应用程序时,这会产生一个404 Not Found
响应。 当然,你可以生成一个401 Unauthorized
。