使用Backbone进行外部私有API身份验证

时间:2013-02-22 19:02:16

标签: javascript api authentication backbone.js oauth

我正在构建一个API,并且在使用Backbone.js等前端框架时遇到了有关处理身份验证的问题。

我有一个API服务器,负责根据RESTful Web请求返回和修改数据。

我有另一个应用服务器,它是一个Backbone应用程序。我希望此应用程序直接与我的API服务器连接,因此请设置整个项目,以便此应用程序服务器可以向API服务器发出跨域AJAX请求。

有些API路由我不希望未经授权的各方获取访问权限。例如,我有一个路径/用户列出了我的应用程序的所有用户。我稍后需要这条路径用于管理功能,但我不希望它公开提供给我的应用服务器。

使用什么样的身份验证方案? OAuth不起作用,因为秘密令牌将暴露在前端。在那之后,我对我的选择有点困惑。有没有人有任何改进建议?

1 个答案:

答案 0 :(得分:3)

在这些情况下,我使用了多种技术。

- Good ole Cookie based auth

由于骨干应用程序将始终在浏览器中使用,并且浏览器具有内置cookie支持,我建议您应该在服务器端接受基于cookie的会话。所有与auth相关的东西都将由浏览器处理,你不必担心存储密钥等。顶部许多库(如iPhone中的NSURL)和框架(如PhoneGap / Trigger)都支持cookie,所以你可以支持所有类型的客户都有小工作。

- 普通API密钥

对于第三方,我使用基于api-key的身份验证。您提供了usernamepassword,我提供了密钥。您每次在HTTP标头中为所有后续请求发送该密钥。我使用密钥来识别您,然后相应地允许/禁止操作。

我假设一旦你可以验证用户(等等......你是谁?),那么你可以设置授权(你说Micheal?...你可以访问/users

另请查看我的backbone-parse plugin,了解如何根据外部API服务对用户进行身份验证#shamelessplug