我正在为iOS开发Messenger。

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


  22.6启用匿名或恶作剧电话或SMS / MMS消息传递的应用程序
  将被拒绝


根据准则https://developer.apple.com/appstore/resources/approval/guidelines.html

因此,我需要类似于WhatsApp的用户身份验证,该身份验证可以通过以下方式工作:


用户输入电话号码。
电话号码已发送到服务器。
服务器向该号码发送带有3(或4,不记得了)数字代码的短信。
用户输入密码。
代码发送到服务器。
验证代码,如果代码匹配,则对用户进行身份验证。


我已经准备好服务器端。我现在唯一需要做的就是在电话本身上实现UI和身份验证过程。由于我的主应用程序已经准备好,所以我想知道如何在应用程序中嵌入身份验证。

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

还有其他想法或建议吗?

最佳答案

模态视图控制器将是用户界面的不错选择。它的好处是
将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];
// ....

关于iphone - 如何开发认证以符合Apple的条款和条件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5814018/

10-09 21:03