1

我正在构建一个 API,并且在使用 Backbone.js 等前端框架时对处理身份验证有疑问。

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

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

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

使用什么好的身份验证方案?OAuth 不起作用,因为秘密令牌将在前端公开。在那之后,我有点坚持我的选择。有人对前进有任何建议吗?

4

1 回答 1

3

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

-- 良好的基于​​ ole Cookie 的身份验证

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

-- 普通 API 密钥

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

我假设一旦您可以对用户进行身份验证(等等..您是谁?),那么您就可以设置授权(您说Micheal?...好的,您可以访问/users

还可以查看我的骨干解析插件,了解如何针对外部 API 服务对用户进行身份验证#shamelessplug

于 2013-02-23T09:33:32.077 回答