我正在为我的网络应用程序使用角度fullstack生成器,我想让我的api成为私有的,这意味着应该只从我的域提供响应。如果api是从不同的域使用的,则不应提供响应。
为此,我使用了以下npm包https://www.npmjs.com/package/cors。
我在项目中添加了以下代码。
'use strict';
var express = require('express');
var cors = require('cors');
var router = express.Router();
var app = express();
var corsOptions = {
origin: 'http://example.com'
};
router.get('/', cors(corsOptions), function(req, res, next) {
res.json({
msg: 'This is CORS-enabled for only homefuly.com.'
});
});
module.exports = router;
以上代码放在我的服务器中 - > api-> test-> index.js
当我点击api http://localhost:9000/api/test时,我能够看到响应。我应该只得到来自example.com的请求,否则它应该抛出错误消息,请帮助实现此目的。
提前致谢。
答案 0 :(得分:4)
我想让我的api成为私人的
Express可以根据IP地址限制连接:
var express = require('express')
, ipfilter = require('express-ipfilter').IpFilter
, app = express.createServer()
;
// Whitelist the following IPs
var ips = ['127.0.0.1'];
// Create the server
app.use(ipfilter(ips, {mode: 'allow'}));
app.listen(3000);
有关详细信息,请参阅NPM express-ipfilter Package INFO。