使用Express限制对Node.js的访问

我确实有一个运行在服务器上的node.js脚本。 我想要的是,它不会直接从浏览器访问,也希望只有某些域/ IP-s可以调用它! 可能吗?!

不知道如何区分从浏览器访问的东西,而不是其他软件,但限制访问某些域/ IP应该是可行的。 以下(非生产)代码限制对本地主机循环的访问可以作为一个起点:

function securityCheck( req, response, next) { var callerIP = req.connection.remoteAddress; (callerIP == "::ffff:127.0.0.1" || callerIP == "::1") ? next() : reply404( response); } function reply404( response) { response.writeHead(404, {"Content-Type": "text/html"}); response.statusMessage = "Not Found"; console.log("reply404: statusCode: " + response.StatusCode); response.end('<span style="font-weight: bold; font-size:200%;">ERROR 404 &ndash; Not Found<\/span>'); } var app = express(); app.use(securityCheck); // restrict access ... // continue with app routing 

另请参阅更详细的对Express.js的 SO解答:如何获取远程客户端地址以及如何获取在express.js中发起请求的域?