外部专用API身份验证(使用主干)
External Private API Authentication with Backbone
我正在构建一个API,在使用Backbone.js.等前端框架时,我对处理身份验证有疑问
我有一个API服务器,负责基于RESTful web请求返回和修改数据。
我有另一个应用服务器,它是一个主干应用程序。我希望这个应用程序直接连接到我的API服务器,所以设置整个项目,以便这个应用程序服务器可以向API服务器发出跨域AJAX请求。
我不希望未经授权的方访问某些API路由。例如,我有一个列出应用程序所有用户的路径/用户。我以后需要这个路径来执行管理功能,但我不希望它对我的应用服务器公开。
什么是好的身份验证方案?OAuth无法工作,因为机密令牌将在前端公开。在那之后,我有点纠结于我的选择。有人对未来有什么建议吗?
在这种情况下,我使用了多种技术的组合。
-良好的基于ole Cookie的身份验证
由于主干应用程序将始终在浏览器中使用,并且浏览器具有内置的cookie支持,我建议您在服务器端接受基于cookie的会话。所有与身份验证相关的东西都将由浏览器处理,你不必担心存储密钥等。最重要的是,许多库,如(iPhone中的NSURL)和框架(如PhoneGap/Trigger)都支持cookie,所以你可以用litte工作支持所有类型的客户端。
--普通API密钥
对于第三方,我使用基于api密钥的身份验证。你提供username
和password
,我提供密钥。您每次在HTTP标头中为所有后续请求发送该密钥。我使用密钥来识别您,然后相应地允许/禁止操作。
我假设一旦你可以验证用户(等等…你是谁?),那么你就可以设置授权(你说Micheal
?…好的,你可以访问/users
)
还可以看看我的backbone-parse插件,了解如何根据外部API服务对用户进行身份验证#shamelessplug
- 如何更改bigquery API中的计费层选项
- Amazon S3 REST API大小不正确
- 客户端服务器REST API captcha实现
- 使用Facebook live API创建实时视频对象时的隐私设置
- 谷歌放置API:按国家或餐馆名称搜索餐馆
- 如何检测用于WebGL的专用或集成显卡
- MeteorJS:在带有回调的vzaar api上正确使用wrapAsync
- 是否可以控制获取哪些Google地图脚本(JavaScript API)
- API密钥使用和检查示例
- 谷歌地图API v3不适用于移动浏览器或PhoneGap
- 任何方式使AJAX调用Gmail API,而无需通过JS库
- 谷歌地图JS API+JSON-多个标记没有显示
- 单击超链接时,如何使用Google Maps API v3缩放地图
- 如何在 API 调用后和 if 语句中启用提交按钮
- 与运行长作业(javascript,node.js)的第三方API同步的最佳实践
- 搜索api在mac上显示对话框
- Backbone.js restful json API design
- 标记的实时更新,无需加载页面谷歌地图API V3
- 是否可以使用iframe API在iOS浏览器上播放youtube视频
- 外部专用API身份验证(使用主干)