HarmonyOS鸿蒙Next中华为账号一键登录实战参考
HarmonyOS鸿蒙Next中华为账号一键登录实战参考
一、开发准备 参考
1、配置Client ID
开发华为账号一键登录需要申请 quickLoginMobilePhone权限详细步骤 参考链接
2、scope权限用于登录和获取华为账号用户信息两大场景
3、配置应用签名证书指纹
以上不完成后配置如下图
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、匿名手机号。匿名手机号用于登录页面展示。
3)使用LoginWithHuaweiIDButton (华为账号Button登录组件)作为登录按钮,用户同意协议并点击一键登录按钮后,可获取到Authorization Code,将该值传给应用服务器用于获取用户信息(完整手机号、UnionID、OpenID),
此时服务端获取到用户信息后,可根据业务逻辑进行相应的操作,如:注册等流程,完成注册后可把用户信息返回给客户端,客户端收到用户信息可用于保存展示等。
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需要简单调整即可,
更多关于HarmonyOS鸿蒙Next中华为账号一键登录实战参考的实战教程也可以访问 https://www.itying.com/category-93-b0.html
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中实现华为账号一键登录功能,主要分为开发准备和代码实现两部分:
开发准备:
- 配置Client ID:在module的metadata中添加client_id字段
- 申请quickLoginMobilePhone权限
- 配置应用签名证书指纹(需在AGC申请调试证书、注册调试设备等)
- 获取设备UDID(可通过hdc shell bm get --udid命令)
代码实现:
- 自行开发方式:
- 导入@kit.AccountKit等必要模块
- 调用authentication模块的AuthorizationWithHuaweiIDRequest
- 使用LoginWithHuaweiIDButton组件获取Authorization Code
- DevEco Studio辅助开发(推荐):
- 创建容器后使用Kit Assistant拖拽QuickLoginButton
- 在getQuickLoginAnonymousPhone中处理响应
- 实现协议跳转并获取Authorization Code
两种方式最终都需要将Authorization Code传给服务端获取完整用户信息。建议使用DevEco Studio的辅助开发功能,可以简化开发流程。