express.js 限制 api 访问仅来自同一网站的页面

Max*_*ain 5 javascript node.js express parse-platform

我正在使用 parse.com 来托管我的应用程序。我已经构建了一个简单的 api 来反馈 json。网址很简单,如下所示:http://websitename.parseapp.com/api/new/1/10。现在,我的 api 是公开可见的,但我想限制访问,以便只有来自相同域名的页面才能访问它。我怎样才能用 express.js 实现这一点?

这是我所拥有的示例代码:

var express = require('express');
var app = express();

// Global app configuration section
app.set('views', 'cloud/views');  // Specify the folder to find templates
app.set('view engine', 'ejs');    // Set the template engine
app.use(express.bodyParser());    // Middleware for reading request body

// This is an example of hooking up a request handler with a specific request
// path and HTTP verb using the Express routing API.
app.get('/api/:page/:from/:to', function(req, res) {
  res.render('hello', { message: 'Congrats, you just set up your app!' });
});

// This line is required to make Express respond to http requests.
app.listen();
Run Code Online (Sandbox Code Playgroud)

Fab*_*oni 4

您想要阻止跨源资源共享,这已经被express.js. 要允许来自某些站点,您必须设置Access-Control-Allow-OriginAccess-Control-Allow-Headers(请参阅此处)。

如果您向与您所在域不同的域创建 HTTP 请求,则必须向您发送Origin包含请求域的 HTTP 标头。基于此,网络服务器决定是否响应请求。

如果您想阻止除托管站点之外的所有域的 CORS: 您无需执行任何操作。

如果您想允许来自某些站点,请将 -header 更改Access-Control-Allow-Origin为您想要的域名。