我正在尝试为我的iPhone应用和服务器构建基础。我有用户将从iPhone应用程序注册并登录。在正常的网站登录中,http服务器将提供cookie以允许用户的后续请求保持身份验证。我应该如何在iPhone上处理这个问题?我是否应该每次发送NSURLConnection GET或POST时发送用户/密码?这似乎过分了。或者我使用ASIHTTPRequest框架来使用cookie。任何人都可以指出我正确的方向,以实现正确的实施吗?
谢谢!
答案 0 :(得分:8)
在每个请求中发送用户名和密码都不是很好。
您可以使用任何想要发送Cookie的内容。它只是另一个HTTP标头。但这引出了cookie中的内容的问题。这取决于您的客户端/服务器架构。 Web应用程序使用会话密钥,因为传统上Web客户端没有任何状态,因此应用服务器必须这样做。本机客户端可以具有各种状态,因此通常不需要服务器来提供该状态。
但是你需要身份验证。这就是OAuth和OAuth 2之类的内容。它们允许您进行一次身份验证,然后使用可能在服务器端无效的令牌。有点像没有数据的很长时间的会话。
它们有点复杂但是有服务器和客户端部分的开源库,或者你可以自己动手。大多数复杂情况是获取原始令牌,如果您拥有客户端和服务器,则可以将其短路。 OAuth可能变得非常复杂,因为所有请求都使用秘密令牌进行签名。 OAuth 2可以像cookie中的共享密钥(因此需要SSL)一样简单。