我想为移动客户端添加一个REST接口到Django。移动客户端将通过HTTPS使用JSON。我一直无法找到用于移动设备的“最佳”方式。从四处搜索,似乎#2更有利于#1:如何保护移动应用程序的REST API?
- 使用HTTP身份验证并建立基于cookie的会话。所有事务都将通过HTTP进行,而JSON消息将仅包含命令或数据。
- 将每个JSON消息中的用户名和密码(加密的)传递给所有事务,并且不要依赖基于cookie的会话。
我想为移动客户端添加一个REST接口到Django。移动客户端将通过HTTPS使用JSON。我一直无法找到用于移动设备的“最佳”方式。从四处搜索,似乎#2更有利于#1:如何保护移动应用程序的REST API?
数字2是更可取的,而不是推出自己的,我会建议使用OAuth身份验证,如果可能的话。客户端和服务器库现在都可以在大多数平台上使用。详情请查询http://oauth.net。
除非您希望将这些服务提供给其他开发人员(他们将代表您的最终用户访问),否则OAuth会过度使用。更好的选择2,但我会建议使用摘要式身份验证而不是密码身份验证。把它和SSL结合起来,你绝对会很好。
我建议首先用登录电话发送用户名/密码。 JSON将传回一个authToken或accessToken,移动设备将为其后的所有呼叫返回。然后您将检查以确保authToken有效。这是许多API所采用的方法。在他们的数据库中,他们将API密钥绑定到他们登录的用户帐户。
任何链接到设计这个问题的文档/模式? – QED 2012-02-29 23:07:44
我肯定会从上面提到的Oath.net网站的“入门”部分开始。它可以链接到今天可用的大部分OAuth信息。 – 2012-02-29 23:12:14
糟糕,我的意思是REST – QED 2012-02-29 23:44:50