我正在寻找为我的iPhone应用程序进行一次性登录的最佳方法。使用 iOS 5.1.1 SDK,但面向 iOS 4.1 进行部署。
其目的是获取生成的 ID:如果存在 ID,那么我不再需要登录,该 ID 将以 XML 形式返回。
我的应用程序是当前基于 Web 的服务的扩展,它涉及位置更新的异步 HTTP POST,使用 ID 作为标识符,并检查返回的 XML 是否存在任何错误。ID 不会过期。它是一个单视图应用程序,因为它只需要一个开始/停止按钮。
Web 服务的用户名永远不会更改,所以我只想在关闭一次获取 ID,如果一个人要破解东西并获取 ID,则没有任何好处或安全风险由于服务的性质和应用程序没有提供有关用户的信息。我想要的过程如下。
- 应用程序已启动。
- 我们是否存储了 ID?(是/否)
- 如果是,请进入应用程序。
- 如果没有显示用户名/密码屏幕以获取ID。
- 输入用户名/密码时,密码将被加密,发送到服务器进行验证,如果是,则返回并存储 id。
用户名/密码将是两个输入和一个登录按钮。
最好的方法是什么?我真的不知道该遵循什么方向。
我建议做的是使用iOS的钥匙串来存储用户的ID。你永远不会太安全,示例用法可以在这里找到 通用钥匙串 或者有许多易于使用的包装器来实现这一点。
如果您真的不关心安全性,NSUserDefaults
适用于存储。
另外,我建议利用iCloud文档存储使所有用户设备都保留此ID。您可以参考此线程以获取更多信息。
希望我建议的所有内容对您的问题有所帮助!
更新:对于其他任何发现此答案有用的人。正如@sandmanza
提到的,如果您采用钥匙串路线,请务必包括 Security.framework
。
保存在 NSUserDefault 中,在启动应用程序时,您可以从 NSUserDefault 中检索 ID 并检查 ID 是否存在,并在此基础上继续。