我正在开发一个需要与服务器通信的 ios 应用程序。当用户第一次启动应用程序时,系统会提示他输入用户名和密码。一旦他通过身份验证,我想让他保持登录状态,直到他明确退出。
在 Apple 文档中挖掘了几个小时后,我可以指出两种方法来实现这个想法: <1> 使用 http 基本/摘要身份验证。用户通过身份验证后,我将用户名和密码保存在钥匙串中。每当服务器需要认证时,通过实现connection:didReceiveAuthenticationChallenge:函数,app 可以加载用户名和密码,并构造合法的 NSURLCredential。当然可以,但是每个请求都必须经过一次身份验证并经常传输用户机密。
<2> 使用http cookie 一旦用户通过身份验证,服务器响应cookie 中的唯一令牌。取决于特性URL 加载系统会自动发送任何适合 NSURLRequest 的存储 cookie。我不确定用户杀死应用程序时cookie是否会丢失。
你觉得这两种方法都行吗?哪一个更好?有没有其他方法可以做同样的事情?
我注意到许多客户(twitter/facebook/...)保持用户登录,他们使用什么方法?谢谢;
顺便说一句,我已将用户名和密码保存在钥匙串中,但要保持登录状态,我认为还有更多工作要做。