介绍

如何让用户依据已有的账号来进行登录注册呢?在利用中集成华为AGC认证服务SDK来轻松疾速地实现这个性能。

本篇内容依据官网文档领导集成过程总结实现,对于集成步骤,官网的材料写的有点多,当初我总结一下步骤:

1、开明华为认证服务

2、在iOS我的项目中集成SDK

3、设计登录注册页面

4、开启认证形式

5、注册登录性能开发

6、打包测试

开明华为认证服务

在AppGallery Connect页面点击"我的我的项目",在我的项目的利用列表中抉择须要开明认证的利用,导航抉择"构建 > 认证服务"。如果是首次应用认证服务,请点击"立刻开明"开明服务。

集成SDK

针对Xcode开发环境,您能够通过Cocoapods集成形式将认证 SDK集成到您的Xcode开发环境中。

1. 在Xcode我的项目中增加以后利用的AppGallery Connect配置文件。

1) 登录AppGallery Connect网站,点击“我的我的项目”。

2) 在我的项目列表中找到您的我的项目,在我的项目下的利用列表中抉择您须要集成SDK的利用。

3) 点击“我的项目设置”中“利用”栏下的“agconnect-services.plist”下载配置文件。

4) 将“agconnect-services.plist”文件拷贝到利用级根目录下。

## 2. 创立Podfile文件。

关上命令行窗口,导航至Xcode我的项目所在的地位,创立Podfile文件。如果曾经存在,可跳过本步骤。

cd project-directorypod init

3. 编辑Podfile文件。

1) 集成认证SDK

编辑Podfile文件,减少pod依赖pod ‘'AGConnectAuth'。

target   'AGConnectAuthDemo' do pod 'AGConnectAuth' end

2) 执行 pod install,而后关上.xcworkspace文件查看该我的项目。
# 界面设计
本次Codelab中您能够在Xcode工程中创立一个布局页面,参照下图进行UI设计,通过手机号、邮箱账号进行注册登录。

开启认证形式

1. 登录AppGallery Connect网站,点击“我的我的项目”。

2. 在我的项目列表中找到您的我的项目,在我的项目下的利用列表中抉择您的利用。

3. 在“构建”栏下找到“ 认证服务”,在"认证形式"页签下“操作”一栏里,点击启用手机号码、邮箱地址。

注册登录性能开发

1. 在将故事板的控件关联到ViewController中,以便您通过输入框取得登录注册所需的参数。

  @IBOutlet weak var phoneText:   UITextField!//手机账号输入框     @IBOutlet weak var phoneVertifyText:   UITextField!//手机验证码输入框     @IBOutlet weak var phonePassword:   UITextField!//手机账号密码输入框     @IBOutlet weak var emailText:   UITextField!//邮箱账号输入框     @IBOutlet weak var emailVertifyText:   UITextField!//邮箱验证码输入框     @IBOutlet weak var emailPassword:   UITextField!//邮箱账号密码输入框

2. 如果应用的是未注册过的手机号,首先您须要发送验证码到手机,来验证是否自己注册。输出手机号码,点击“发送验证码”按钮,代码执行到申请手机验证码的办法,在返回中能够看到发送后果。

@IBAction func   phoneSendVertifyCode(_ sender: Any) {         let setting =   AGCVerifyCodeSettings.init(action: AGCVerifyCodeAction.registerLogin, locale:   nil, sendInterval: 30)           AGCPhoneAuthProvider.requestVerifyCode(withCountryCode:   "86", phoneNumber: phoneText.text ?? "", settings:   setting).onSuccess { (results) in             //手机验证码发送胜利         }.onFailure { (error) in             //手机验证码发送失败         }     }

3. 手机收到验证码后,输出验证码和您要设置的明码,就能够进行注册了。在页面上点击“register”按钮,执行手机号注册的办法,注册后果您也能够在block返回中看到。

@IBAction func register(_   sender: Any) {           AGCAuth.instance().createUser(withCountryCode: "86",   phoneNumber: phoneText.text ?? "", password: phonePassword.text ??   "", verifyCode: phoneVertifyText.text ?? "").onSuccess {   (result) in             //手机注册胜利         }.onFailure { (error) in             //手机注册失败         }     }

4. 注册胜利后,输入您的手机号和设置的明码,点击“login”按钮进行登录。这样您就实现了,应用AGConnectAuth进行手机号注册登录的步骤。

@IBAction func login(_ sender:   Any) {         let credential =   AGCPhoneAuthProvider.credential(withCountryCode: "86", phoneNumber:   phoneText.text ?? "", password: phonePassword.text ?? "")         AGCAuth.instance().signIn(credential:   credential).onSuccess { (result) in             //登录胜利         }.onFailure { (error) in             //登录失败         }     }

5. 如果应用的是未注册过的邮箱账号,首先须要发送验证码到邮箱来验证。输出邮箱号码,点击“发送验证码”按钮,代码执行到申请邮箱验证码的办法,在返回中您也能够看到发送后果。

@IBAction func   emailSendVertifyCode(_ sender: Any) {         let setting = AGCVerifyCodeSettings.init(action:   AGCVerifyCodeAction.registerLogin, locale: nil, sendInterval: 30)           AGCEmailAuthProvider.requestVerifyCode(withEmail: emailText.text ??   "", settings: setting).onSuccess { (result) in             //邮箱验证码发送胜利         }.onFailure { (error) in             //邮箱验证码发送失败         }     }

6. 邮箱收到验证码后,输出验证码和您要设置的明码,点击“register”按钮,就能够实现注册了。

@IBAction func register(_   sender: Any) {           AGCAuth.instance().createUser(withEmail: emailText.text ??   "", password: emailPassword.text ?? "", verifyCode:   emailVertifyText.text ?? "").onSuccess { (result) in             //邮箱注册胜利         }.onFailure { (error) in             //邮箱注册失败         }     }

7. 注册胜利后,输入您的邮箱号和设置的明码,点击“login”按钮进行登录。这样您就实现了,应用AGConnectAuth进行邮箱注册登录的步骤。

@IBAction func login(_   sender: Any) {         let credential =   AGCEmailAuthProvider.credential(withEmail: emailText.text ?? "",   password: emailPassword.text ?? "")         AGCAuth.instance().signIn(credential:   credential).onSuccess { (result) in             //登录胜利         }.onFailure { (error) in             //登录失败         }     }

8. 调用signOut办法,退出登录状态。

@IBAction func logout(_   sender: Any) {         AGCAuth.instance().signOut()     }

打包测试

1. 在Xcode上点击运行按钮,在手机或模拟器上运行利用。输出手机号码,点击“发送验证码”按钮,待手机收到验证码,输出验证码和您要设置的明码,点击“register”,打断点查看是否注册胜利,注册胜利后点击“login”。打断点查看返回后果,result能够看到登录胜利后的用户信息。


2. 验证邮箱注册登录性能时,首先要点击“logout”按钮退出登录状态,否则再次登录会失败。输出邮箱账号,点击“发送验证码”按钮,输出验证码和您要设置的明码,点击“register”,注册胜利后点击“login”。查看result能够看到登录胜利后的用户信息。


总结

认证服务集成简略,SDK依赖体积小,能够实现跨平台的分享,Android和iOS都能够反对,不须要在不同的平台做不同的适配了,节约工作量。

经营做推广能够再AGC界面上创立,开发做分享性能能够在端侧用代码创立,几乎完满。

参考文档:

华为AGC认证服务开发文档:https://developer.huawei.com/...
更多精彩内容,请见华为开发者官方论坛→https://developer.huawei.com/...