外部专用API身份验证(使用主干)

External Private API Authentication with Backbone

本文关键字:专用 API 身份验证 外部      更新时间:2023-09-26

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

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

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

我不希望未经授权的方访问某些API路由。例如,我有一个列出应用程序所有用户的路径/用户。我以后需要这个路径来执行管理功能,但我不希望它对我的应用服务器公开。

什么是好的身份验证方案?OAuth无法工作,因为机密令牌将在前端公开。在那之后,我有点纠结于我的选择。有人对未来有什么建议吗?

在这种情况下,我使用了多种技术的组合。

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

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

--普通API密钥

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

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

还可以看看我的backbone-parse插件,了解如何根据外部API服务对用户进行身份验证#shamelessplug