HarmonyOS鸿蒙Next中华为账号一键登录实战参考

HarmonyOS鸿蒙Next中华为账号一键登录实战参考

一、开发准备 参考

链接

1、配置Client ID

开发华为账号一键登录需要申请 quickLoginMobilePhone权限详细步骤 参考链接

2、scope权限用于登录和获取华为账号用户信息两大场景

cke_205.png

3、配置应用签名证书指纹

以上不完成后配置如下图 cke_206.png

4、获取UDID

方法一:

使用PC连接手机后,打开命令行工具,进入HDC目录(一般为:DevEco Studio安装目录/sdk/[SDK版本]/openharmony/toolchains),输入
hdc shell bm get --udid命令,获取设备的UDID。

方法二:

1、在终端输入如下命令,进入当前toolschains版本号目录下:
cd xx/Sdk/toolchains/3.0.0.1
2、执行shell命令: ./hdc shell 
3、获取设备的udid:bm get --udid
参考链接:https://blog.csdn.net/tangkunTKTK/article/details/126161230

二、一键登录

从上图可知,我们客户端目标是获取Authorization Code,将该值传给应用服务器用于获取用户信息(完整手机号、UnionID、OpenID)。

1、自行开发

1)导入Account Kit的authentication模块及相关公共模块。

import { authentication } from '@kit.AccountKit';
import { util } from '@kit.ArkTS';
import { hilog } from '@kit.PerformanceAnalysisKit';
import { BusinessError } from '@kit.BasicServicesKit';

2)调用authentication模块的AuthorizationWithHuaweiIDRequest请求获取华为账号用户的UnionID、OpenID、匿名手机号。匿名手机号用于登录页面展示。

cke_208.png

3)使用LoginWithHuaweiIDButton (华为账号Button登录组件)作为登录按钮,用户同意协议并点击一键登录按钮后,可获取到Authorization Code,将该值传给应用服务器用于获取用户信息(完整手机号、UnionID、OpenID),

cke_209.png

此时服务端获取到用户信息后,可根据业务逻辑进行相应的操作,如:注册等流程,完成注册后可把用户信息返回给客户端,客户端收到用户信息可用于保存展示等。

2、借助DevEco Studio辅助开发 (建议使用这种方式,简单)

1)打开需要提供一键登录功能的页面,在页面的build()中创建一个容器(如Column)。

2)在DevEco Studio菜单栏点击View > Tool Windows > Kit Assistant,或使用快捷键Alt + K,进入Kit Assistant页面。

3)在左侧目录中点击选中AccountKit > QuickLoginButton,并拖拽至新创建的容器中。即可在当前位置插入相应的代码片段。

4)在自动生成的代码段的getQuickLoginAnonymousPhone函数中,执行executeRequest函数可获取响应结果。

5)根据上述代码实现应用的登录页面,并展示华为账号一键登录按钮和华为账号用户认证协议(Account Kit提供跳转链接,应用需实现协议跳转,参见约束与限制,用户同意协议并点击一键登录按钮后,可获取到Authorization Code,将该值传给应用服务器用于获取用户信息(完整手机号、UnionID、OpenID)。

此时服务端获取到用户信息后,可根据业务逻辑进行相应的操作,如:注册等流程,完成注册后可把用户信息返回给客户端,客户端收到用户信息可用于保存展示等。

完成后根据UI需要简单调整即可, cke_211.png


更多关于HarmonyOS鸿蒙Next中华为账号一键登录实战参考的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

HarmonyOS Next的一键登录功能主要通过华为Account Kit实现。开发者需在项目中集成HMS Core SDK,配置agconnect-services.json文件。关键代码涉及调用AccountAuthManager.requestToken()方法获取AuthToken,使用AuthAccount类处理用户信息。需在manifest.json中声明ohos.permission.ACCOUNT_MANAGER权限。注意Next版本对老API有调整,需使用新接口com.huawei.hms.support.hwid.service.HuaweiIdAuthService。登录成功后返回的OpenID和UnionID可用于用户身份识别。

更多关于HarmonyOS鸿蒙Next中华为账号一键登录实战参考的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS Next中实现华为账号一键登录功能,主要分为开发准备和代码实现两部分:

开发准备:

  1. 配置Client ID:在module的metadata中添加client_id字段
  2. 申请quickLoginMobilePhone权限
  3. 配置应用签名证书指纹(需在AGC申请调试证书、注册调试设备等)
  4. 获取设备UDID(可通过hdc shell bm get --udid命令)

代码实现:

  1. 自行开发方式:
  • 导入@kit.AccountKit等必要模块
  • 调用authentication模块的AuthorizationWithHuaweiIDRequest
  • 使用LoginWithHuaweiIDButton组件获取Authorization Code
  1. DevEco Studio辅助开发(推荐):
  • 创建容器后使用Kit Assistant拖拽QuickLoginButton
  • 在getQuickLoginAnonymousPhone中处理响应
  • 实现协议跳转并获取Authorization Code

两种方式最终都需要将Authorization Code传给服务端获取完整用户信息。建议使用DevEco Studio的辅助开发功能,可以简化开发流程。

回到顶部