如何在 NodeJS Express API 中仅接受定义的 URL

Mat*_*ias 7 node.js express

FE:我的 NodeJS 脚本在服务器上运行,可以处理以下内容:

app.get('/users', function(req, res) {
    res.json([{ name: "Brian" }]);
});
Run Code Online (Sandbox Code Playgroud)

对于 API 场景,我希望在进行任何身份验证之前,只有特定网站可以向 NodeJS API 服务器放置 GET/POST 或其他任何内容。那可能吗?

Mat*_*eks 5

我认为您可以使用跨源资源共享来实现这一目标。尽管这仅适用于浏览器,但人们仍然可以通过使用 CURL 或其他类似工具来获取这些数据。

var cors = require('cors')
Run Code Online (Sandbox Code Playgroud)

app.use(cors({
  origin: 'http://example.com'
}))
Run Code Online (Sandbox Code Playgroud)

或者

app.use(cors({
  origin: ['http://example1.com', 'http://example2.com']
}))
Run Code Online (Sandbox Code Playgroud)

如果您想了解更多相关信息,可以在这里查看: https: //expressjs.com/en/resources/middleware/cors.html

https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS