如何在angular fullstack生成器中使用cors使我的API变为私有?

时间:2016-11-02 16:20:55

标签: angularjs node.js express cors angular-fullstack

我正在为我的网络应用程序使用角度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的请求,否则它应该抛出错误消息,请帮助实现此目的。

提前致谢。

1 个答案:

答案 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