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

我正在使用parse.com托pipe我的应用程序。 我已经build立了一个简单的API反馈json。 url很简单,如下所示: 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(); 

您希望防止由express.js阻止的跨源资源共享 。 要允许它从某些站点,你必须设置Access-Control-Allow-OriginAccess-Control-Allow-Headers (见这里 )。

如果您创build一个HTTP请求到一个不同的域,那么你必须发送一个包含请求域的Origin HTTP头。 基于此,networking服务器决定是否响应该请求。

如果您想防止所有域名的CORS,但是该网站的主机: 您不必做任何事情。

如果您想允许某些网站Access-Control-Allow-Origin ,请将Access-Control-Allow-Origin -header更改为所需的域名。