2014-04-30 45 views
1

我为我的应用程序使用node/express创建了一个简单的REST api。我在前端使用AngularJS为用户提供页面。nodejs - 私有REST API

我想添加的功能只能通过我的前端访问API,任何人都不应该能够对我的网站执行GET/POST请求并获取数据?

我可以用什么策略来实现这个目标?

+0

使用认证中间件?例如,[护照](http://passportjs.org/)。 – raina77ow

+0

我不太明白如何将其整合到我的解决方案中,因为我不想使用密码等。 – dopplesoldner

+1

您不必使用密码等;有不同的认证策略。 – raina77ow

回答

0

HTTP请求可以通过浏览器旁边的许多其他方式格式化并发送到服务器(例如curl),因此任何服务器始终检测到请求的正确来源都不能保证。

保护端点的基本方法是使用某种认证。提出请求的客户必须提供唯一标识它的内容。 API应该在证明自己是真实的(通过登录等)之后向客户端提供令牌,并且将检查所有后续请求以获取该令牌。

+0

如果我的客户端是用AngularJS编写的Web应用程序,任何人都可以查看源代码和令牌,我该如何解决这个问题? 对不起,如果我的问题是业余的。 – dopplesoldner

+0

@dopplesoldner这就是为什么你加密它并将其存储在一个用户浏览器的会话存储中的原因。 –