ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2022-07-13 09:31:40  阅读:258  来源: 互联网

标签:Serverless 手机号 text iOS 验证码 认证 let phoneNumber pod


​简介

通过集成华为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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有