乐趣区

关于xcode:iOS平台-快速集成华为AGC认证服务

介绍

如何让用户依据已有的账号来进行登录注册呢?在利用中集成华为 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-directory
pod 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/…

退出移动版