Myr*_*ton 11 iphone authentication api
我正在为我们的Web应用程序开发HTTP API.最初,API的主要消费者将是我们正在开发的iPhone应用程序,但我正在考虑未来的用途(例如其他平台的移动应用程序).我正在尝试确定用户身份验证的最佳方式,以便他们可以从iPhone访问自己的帐户.我有一个我认为运作良好的设计,但我不是安全专家,所以我认为在这里寻求反馈会很好.
用户身份验证的设计有3个主要目标:
总体而言,API受REST启发(即将URL视为资源,并在语义上使用HTTP方法和状态代码).每个API请求都必须包含两个自定义HTTP标头:API密钥(每个客户端应用程序都是唯一的)和唯一的设备ID.API要求使用HTTPS进行所有请求,以便对标头和正文进行加密.
我的计划是在我的数据库中有一个api_sessions表.它对API密钥和唯一设备ID具有唯一约束(因此设备可能只通过给定应用程序登录到单个用户帐户)以及users表的外键.
API将具有登录端点,该端点接收用户名/密码,如果它们与帐户匹配,则记录用户,为给定的API密钥和设备ID创建api_sessions记录.未来的API请求将使用API密钥和设备ID查找api_session,如果找到记录,则将请求视为在api_session记录引用的用户帐户下登录.
还将有一个注销 API端点,它从api_sessions表中删除记录.
有没有人在这看到任何明显的安全漏洞?
我同意 oAuth 的评论 - 你当然可以让 oAuth 在 iPhone 上很好地工作 - 用户体验完全取决于你。有一些机制(jQuery)可以从 oAuth 中提取 PIN 并使用它(无需用户在应用程序中重新输入 PIN)。这将用户体验降低到
1) 显示网页(在嵌入式控制中) 2) 用户输入用户名和密码并按下按钮 3) 自动解析 oAuth 响应页面。
这个 twitter oAuth 实现使用预先存在的 oAuth 库来实现http://github.com/bengotlieb/Twitter-OAuth-iPhone 。
然而,回到你原来的问题。看起来不错。您唯一没有提及的项目是,您需要在网络应用程序上提供一种机制,以允许用户注销/取消授权设备会话(以防他们丢失设备)。
| 归档时间: |
|
| 查看次数: |
2566 次 |
| 最近记录: |