如何从node.js中的我的接口识别提交的请求

如何从node.js中的我的接口识别提交的请求,node.js,express,mongoose,Node.js,Express,Mongoose,我正在使用Nodejs、expressjs和mongoose开发一个应用程序。现在,如何确定rest api服务的请求命中来自我的前端应用程序,而不是来自任何未知的请求。如果前端应用程序是浏览器网页,那么,就没有真正的方法将RESTAPI服务仅限于web应用程序 问题在于,就其本质而言,RESTAPI服务在web上可供任何想要访问它的客户机使用。可以添加访问REST API服务之前所需的某种身份验证(某种类型的密钥),但不能在浏览器网页中隐藏该密钥。如果浏览器网页可以访问该密钥,那么查看网页或网

我正在使用Nodejs、expressjs和mongoose开发一个应用程序。现在,如何确定rest api服务的请求命中来自我的前端应用程序,而不是来自任何未知的请求。

如果前端应用程序是浏览器网页,那么,就没有真正的方法将RESTAPI服务仅限于web应用程序

问题在于,就其本质而言,RESTAPI服务在web上可供任何想要访问它的客户机使用。可以添加访问REST API服务之前所需的某种身份验证(某种类型的密钥),但不能在浏览器网页中隐藏该密钥。如果浏览器网页可以访问该密钥,那么查看网页或网络中代码的任何其他人也可以访问该密钥

因为默认情况下浏览器不允许跨源Ajax调用,所以您已经可以使用浏览器中的REST API服务保护您不受其他一些网页(位于不同站点)的影响。但是,其他服务器仍然可以使用RESTAPI服务


服务试图管理其API使用的一种常见方式是,它们要求为API的每次合法使用获取API密钥。如果发现某个特定API密钥正在滥用服务,则可以撤销该API密钥的权限。您可以授予自己的应用程序API密钥(嵌入到您的网页中),甚至可以定期更改这些web密钥(如每日),以防止人们复制它们一次,然后长时间使用它们。但是一个坚定的黑客仍然会找到一个有效的API密钥并使用它一段时间

服务试图防止过度使用其API并保护其服务完整性的一种常见方式是实现速率限制。您确定了您自己的应用程序每秒不超过的合理API调用数(或某些此类指标),并测量来自每个端点的API调用数,如果它们超过某个阈值,则您可以延迟、拒绝或错误它们的调用,直到它们不再超过您的阈值