如何开发认证以符合苹果的条款和条件?

时间:2011-04-28 05:27:34

标签: iphone objective-c xcode ios

我正在为iOS开发一个信使。

Apple要求对用户进行身份验证以限制匿名消息传递

  

22.6支持匿名或恶作剧电话或短信/彩信的应用程序   将被拒绝

来自指南https://developer.apple.com/appstore/resources/approval/guidelines.html

所以我需要一个类似于WhatsApp的用户身份验证,它可以这样工作:

  1. 用户输入电话号码。
  2. 电话号码将发送至服务器。
  3. 服务器向该号码发送带有3(或4,不记得)数字代码的短信。
  4. 用户输入代码。
  5. 将代码发送到服务器。
  6. 验证代码,如果匹配则验证用户。
  7. 我已准备好服务器端。我现在唯一需要的是在手机上实现UI和身份验证过程。由于我的主应用程序准备就绪,我想知道如何在应用程序中嵌入身份验证。

    我的建议是,如果用户尚未通过身份验证并需要他的电话号码,则会有一个模态显示的窗口。我是否必须检查用户是否在每次启动时都经过身份验证?

    还有其他想法或建议吗?

1 个答案:

答案 0 :(得分:2)

模态视图控制器是用户界面的绝佳选择。它的好处是 封装Web服务调用并在该视图控制器中处理它。

我会拒绝重新验证每个应用启动的用户,一旦成功验证一次,我可能会使用NSUserDefaults来存储凭据,访问令牌或重新验证用户所需的任何识别信息(无需让用户知道重新验证。文档有examples on how to work with NSUserDefaults,可以帮助您了解这方面的需求。

这种方法的要点是创建一个新的视图控制器子类来处理Web身份验证(并访问NSUserDefaults),然后在现有视图控制器上以模态方式呈现它。

您可以在主视图控制器中执行以下操作(或者您希望从中提供身份验证的位置):

// ....
AuthViewController *authVC = [[AuthViewController alloc] init];
[self presentModalViewController:authVC animated:YES];
[authVC release];
// do your authentication from with AuthViewController
// ....

然后,无论采用何种方法表示身份验证已完成:

// ....
// note this is done within the AuthViewController
[self dismissModalViewControllerAnimated:YES];
// ....