标签:
无论是在网页上还是在客户端,每当我们进行注册的时候,往往会进行短信或者邮箱验证,这是一种不错的安全机制。对于用户体验来说,如果是在PC的网页上,用邮箱或者短信验证都比较方便;如果是在手机上,那么使用短信验证就比较方便。这篇博客我们将会在iOS应用中实现短信验证码的功能。实例demo我已经集成到 https://github.com/chenyufeng1991/iOS-Oncenote 。
这里我将会使用mob 的短信验证码 SDK来开发。官网地址为: http://www.mob.com/#/index 。mob的社会化分享和短信验证码SDK做的不错,大家可以尝试去开发。在我们进行调试过程中,需要注意的是:我们只能往同一个号码发送5条验证短信(12小时内)。超过这个额度就不能收到验证短信了。这个是有电信运营商确定的,也是为了防止垃圾短信的一种安全方式。试想如果你不断往一个号码发送验证码,是不是就会成为垃圾短信呢?所以就会有这个数量限制。也就因为这个限制,让我们调试程序增加了困难,也就意味着基本上一天之内我们只能运行5次程序。。。。每次调试程序还要斟酌一番,要不要发送呢?也就因为这个原因,这个简单的功能我测试了2天。。。谁让我只有一个号码呢?
具体实现步骤如下:
(1)登录mob移动开发者服务平台,注册登录,然后下载短信验证码SDK,SMS for iOS,然后直接拖入到项目中即可。里面也有示例demo,做的挺不错的,支持全球发送。
(2)进入后台,创建一个应用即可。获得App Key和App Secret即可,在项目中会用到。这样我们就有服务端了。
。
(3)发送验证码。只要向服务器发送国家码+手机号码 ,就可以了。一般在5秒之内就可以收到验证码。中国的国家码就是86.如果你的App也需要在国外发布,就需要进行相应的配置。在自带的demo中就进行了国家的选择。
[SMSSDK getVerificationCodeByMethod:SMSGetCodeMethodSMS phoneNumber:@"18888888888" zone:@"86" customIdentifier:nil result:^(NSError *error){ if (!error){ //发送验证码成功的回调; } else{ //发送验证码失败的回调;如果你输入错误的手机号码或者任意数字,就会回调; } }];
(4)验证 验证码是否正确。只要向服务器发送手机号和刚才接收到的验证码,服务器端就会进行匹配验证,然后进行相应的回调。
注意点:1).一个验证码只能进行一次验证,一旦第一次验证失败后,就算第二次输入正确的验证码,也不会验证成功。
2).接收到验证码后,只在60s内有效,超过60s,就算验证码正确,也会验证失败。
实现代码如下:
[SMSSDK commitVerificationCode:1234(验证码) phoneNumber:18888888888 zone:@"86" result:^(NSError *error) { if (!error) { //验证成功后的回调; }//if(); else{ //验证失败后的回调; } }];
标签:
原文地址:http://blog.csdn.net/chenyufeng1991/article/details/50039321