express.js限制api只能访问同一网站的网页

时间:2015-07-13 08:48:02

标签: 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();

1 个答案:

答案 0 :(得分:2)

您想要阻止express.js已经阻止的Cross-origin resource sharing。要从某些网站允许,您必须设置Access-Control-Allow-OriginAccess-Control-Allow-Headers(请参阅here)。

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

如果您想要阻止所有域中的CORS,而不是网站托管的域: 您不必做任何事情。 < / p>

如果您想从某些网站允许,请将Access-Control-Allow-Origin - 标头更改为您想要的域名。