其他分享
首页 > 其他分享> > 通过Serverless认证服务在iOS平台实现手机号注册

通过Serverless认证服务在iOS平台实现手机号注册

作者:互联网

​简介

通过集成华为AppGallery Connect认证服务提供的Auth Service SDK,开发者可以对接包括华为帐号、微信、Facebook、Twitter在内的多种第三方用户认证系统,并将认证凭据上报给华为AppGallery Connect认证服务云侧。在下次登录时应用便可直接通过认证服务获取用户的个人基本信息和其他Serverless服务中的受安全规则保护的数据。

华为AppGallery Connect认证服务可以极大减少开发者在用户认证系统构建和运维上的投入和成本。

开通服务和集成SDK

1、登录AppGallery Connect,点击“我的项目”。

2、在导航选择“构建 > 认证”。如果是首次使用认证服务,请点击“立即开通”开通服务。

cke_235.png

3、点击需要启动的认证方式所在行的“启用”,本案例选择启用“手机号码”。

cke_236.png

4、选择常规页签下的“应用”区域,下载agconnect-services.plist配置文件。

cke_237.png

5、打开命令行窗口,导航至Xcode项目所在的位置,创建Podfile文件。如果已经存在,可跳过本步骤。

cd project-directory
pod init

6、编辑Podfile文件,增加pod依赖pod 'AGConnectAuth'。

target 'AGC-Auth-2' do

pod 'AGConnectAuth'

end

7、执行 pod install,然后打开xcworkspace文件查看该项目。

pod install

安装成功效果如下图。

cke_238.png

界面设计

本次Codelab中您可以在iOS项目中创建一个布局页面,参照下图进行设计,通过手机号进行注册登录:

cke_239.png

功能开发

1、在应用的AppDelegate类中引入AGConnectCore库,并在didFinishLaunchingWithOptions方法里调用AGCInstance.startUp进行初始化。

import AGConnectCore 
 
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 
   AGCInstance.startUp() 
   return true 
}

2、申请手机注册的验证码,在使用手机注册之前,需要先验证您的手机,确保该手机归您所有。调用AGCVerifyCodeSettings.init方法生成setting。然后调用AGCPhoneAuthProvider.requestVerifyCode申请验证码。

@objc func send() { 
   let countryCode = geocoTextField.text ?? "" 
   let phoneNumber = phoneTextField.text ?? "" 
 
   let setting = AGCVerifyCodeSettings.init(action:AGCVerifyCodeAction.registerLogin, locale:nil, sendInterval:30) 
   AGCPhoneAuthProvider.requestVerifyCode(withCountryCode:countryCode, phoneNumber:phoneNumber, settings:setting).onSuccess{ (result) in 
      self.resultLabel.text = "send VerifyCode success" 
   }.onFailure{ (error) in 
      self.resultLabel.text = error.localizedDescription 
   } 
}

3、手机收到验证码后,在AGCAuth.instance().createUser方法里传入国家码、手机号、验证码和您要设置的密码,进行注册。成功后,系统会自动登录,无需再次调用登录接口。

@objc func register() { 
   let countryCode = geocoTextField.text ?? "" 
   let phoneNumber = phoneTextField.text ?? "" 
   let verifyCode = verifyTextField.text ?? "" 
   let password = passwordTextField.text ?? "" 
 
   AGCAuth.instance().createUser(withCountryCode:countryCode, phoneNumber:phoneNumber, password: password, verifyCode:verifyCode).onSuccess{ (result) in 
      self.resultLabel.text = result?.user.uid 
   }.onFailure{ (error) in 
      self.resultLabel.text = error.localizedDescription 
   } 
}

打包测试

1、在Xcode上点击运行按钮,在手机或模拟器上运行应用。在对应的文本框中输入国家码和手机号。

cke_240.png

2、点击“VERIFY CODE”,发送验证码。手机收到短信验证码后,在“Verify Code”输入框中填入。

cke_241.png

3、输入您要设置的密码。

cke_242.png

4、点击“Register”,注册成功,下方出现用户uid。

cke_243.png

参考文档

认证服务

欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh

标签:Serverless,手机号,text,iOS,验证码,认证,let,phoneNumber,pod
来源: https://www.cnblogs.com/developer-huawei/p/16472600.html