【发布时间】:2017-08-12 13:27:28
【问题描述】:
我有一个 api 端点,但我希望它只能从某个网站访问。
api来自api.mydomain.com/v1/
而只能访问该api的网站是mydomain.com。我已经实现了CORS,但是由于我的网站可以被公众访问,不需要登录,而且它是静态的,api是由ajax调用的,我没有添加令牌。如果用户将查看我的站点的源代码,他们将看到 api 端点。因此,如果他们浏览端点,他们可以直接访问数据。我希望我的域可以访问 url 端点,而不是直接访问它。如何在 node.js express 项目中做到这一点?
【问题讨论】:
-
express 模块cors 可以轻松将域列入白名单。
-
您可以简单地使用
post请求而不是get来获取数据。在应用程序中,您可以检查请求是否为post/get并在获取时显示错误。由于您已经启用了 CORS,因此没有其他站点能够从端点获取数据。 -
不会 cors 仍然允许在浏览器级别发送响应吗?响应标头将包含
Access-Control-Allow-Origin为somedomain.com和Access-Control-Allow-Methods中的任何内容,然后浏览器将停止执行/显示响应。如果您使用的是使用 http 客户端的程序,您仍然可以在那里看到完整的响应。 -
@Apoorv 我在所有 api 端点中都使用了
post,但我仍然无法访问端点。我尝试使用http客户端测试,还是得到数据
标签: javascript node.js express