1

我正在寻找为我的 iPhone 应用程序进行一次性登录的最佳方式。使用 iOS 5.1.1 SDK,但针对 iOS 4.1 进行部署。

它的目的是获取一个生成的 ID:如果一个 ID 存在,那么我不再需要登录,该 ID 将以 XML 格式返回。

我的应用程序是对当前基于 Web 的服务的扩展,它涉及以 ID 作为标识符的位置更新的异步 HTTP POST,并检查返回的 XML 是否有任何错误。ID 不会过期。它是一个单视图应用程序,因为它只需要一个开始/停止按钮。

Web 服务的用户名永远不会改变,所以我只想一次性获取 ID,如果由于服务的性质和应用程序不提供任何信息而黑客入侵并获取 ID,则没有任何好处或安全风险在用户身上。我想要的过程如下。

  1. 应用程序启动。
  2. 我们有存储 ID 吗?(是/否)
  3. 如果,请进入申请。
  4. 如果没有当前的用户名/密码屏幕来获取 ID。
  5. 在输入用户名/密码时,密码被加密,发送到服务器进行验证,如果是,则返回并存储一个 ID。

用户名/密码将是两个输入和一个登录按钮。

解决此问题的最佳方法是什么?我真的不知道这里该往哪个方向走。

4

2 回答 2

5

我建议做的是使用 iOS 的钥匙串来存储用户的 ID。您永远不会太安全,可以在这里找到示例用法GenericKeychain或者有许多易于使用的包装器来完成此操作。

如果您真的不关心安全性,NSUserDefaults请为存储工作。

另外,我建议利用 iCloud 文档存储来使此 ID 持久保存在所有用户设备上。您可以参考线程以获取更多信息。

希望我建议的所有内容对您的问题有所帮助!

更新:对于其他认为此答案有用的人。如前所述,如果您使用钥匙串路线,请@sandmanza务必包含.Security.framework

于 2012-06-07T08:21:32.007 回答
0

您可以将 ID 保存在 NSUserDefault 中,并且在启动应用程序时,您可以从 NSUserDefault 中检索 ID 并检查 ID 是否存在,并在此基础上继续进行。

于 2012-06-07T08:09:45.910 回答