我正在为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/