Node.js 将nodejs端点限制为客户端应用程序

Node.js 将nodejs端点限制为客户端应用程序,node.js,Node.js,初始加载后,angularjs/nodejs应用程序将使用“ajax”与服务器通信 例如,如果您有一个博客应用程序,您将有一个带有标题、正文等的POST,或者您将有一个GET请求,用于检索最近博客文章的json数组 这些服务器端端点本质上是一个API—它们接受并返回数据 如何将对这些端点的访问限制为仅对应用程序的访问?用户可以轻松地复制url并使用服务器端语言或curl自由使用它 我们有一个实际的API,但您需要一个API密钥来使用它。您对用户进行身份验证吗?如果是这样,您可以使用会话cooki

初始加载后,angularjs/nodejs应用程序将使用“ajax”与服务器通信

例如,如果您有一个博客应用程序,您将有一个带有标题、正文等的
POST
,或者您将有一个
GET
请求,用于检索最近博客文章的json数组

这些服务器端端点本质上是一个API—它们接受并返回数据

如何将对这些端点的访问限制为仅对应用程序的访问?用户可以轻松地复制url并使用服务器端语言或curl自由使用它


我们有一个实际的API,但您需要一个API密钥来使用它。

您对用户进行身份验证吗?如果是这样,您可以使用会话cookie来限制对资源的访问。向您展示了此功能的一个非常基本的实现,其中angular应用程序只能在用户登录时访问服务器资源


另外,您是否使用了nodejs框架?(express、resitfy等)

本质上,不,用户并不总是经过身份验证。用户无需登录即可使用基本功能。我正在使用express、passport、mongoose和一些较小的libs服务器端、angularjs客户端。我能想到的最好办法是设置过期会话cookie。虽然精明的用户可以找到将cookie信息传递到请求上的方法,但他们仍然需要发送GET请求,以便在新cookie过期时获取新cookie。另一种选择是只通过WebSocket发送数据。这可能会将其转换为推送模式,而不是拉送模式,即通过套接字连接发送数据。断开连接时,用户必须发送新的GET请求才能重新连接。您是否可以提供更多信息,了解用户在web应用程序之外访问您的服务器数据会出现问题的原因?特别是未经身份验证的用户。