【HarmonyOS 6】获取华为用户信息

2025-12-03 17:38之家网站 - -

踏入鸿蒙世界的敲门砖,标志着您在技术征途上的全新起点,提升就业竞争力,获得行业认可,点亮职业成长先机,快人一步抢占未来应用开发赛道!https://developer.huawei.com/ consumer / cn / training / dev-cert-detail/101666948302721398?ha_source=hmosclass-itzhijia&ha_sourceId=89000249

背景

这篇文章主要记录,个人开发者在获取华为用户授权后,拿到用户的头像和名字。获取用户的电话号码的获取需要应用获得 scope 权限,现仅对企业开发者开放。

环境配置

在项目中生成证书请求文件(CSR)

  • 在 build->Generate Key and CSR 中选择

  • 根据下面填写内容生成 CSR 文件

  • 创建 Key store,密码要记住的哈~~

  • 输入 Alias(别名)后面再项目结构配置的时候需要填写的哈,要记住。(尴尬,写到才发现单词写错了。。。)

  • 保存 CSR 地址,点击 Finish 完成创建

在 AGC 中创建项目

  • 在证书、APPID 和 Profile 中创建 APP

  • 新建证书,然后下载证书,后续的项目配置需要使用

  • 新建 Profile,并下载后续给项目配置使用

  • 在项目中添加公钥指纹,选择自己新建的公钥

在项目结构中手动添加证书

先查看 Bundle name 和 AGC 的项目上填写的是否一致。像我这里的,AGC 是 com.myapp.accentdemo,项目的是 com.example.accountdemo,因此,需要先调整好 Bundle name

在 AppScope 的 app.json5 文件中进行修改

在 Signing Configs 选项卡中配置项目信息

配置 Client ID,在 Entry->module.json5 中添加 Client ID,在 AGC 中复制 ID

获取用户信息代码编写

UI

  • 需要引用 authentication 和 ImageType

获取用户信息请求对象代码

  • 通过 authentication.HuaweiIDProvider ().createAuthorizationWithHuaweiIDRequest () 的方式创建请求对象

授权请求对象几个重要的属性:

  • scopes:获取用户数据,与 permissions 属性不能同时为空,否则会报错,默认值:[‘openid’]。其中的参数有

  • profile:华为账号用户的基本信息,如昵称头像等。

  • openid:华为账号用户的 OpenID、UnionID。UnionID 作为用户标识,OpenID 为用户在当前应用的用户标识。

  • phone:华为账号快速验证手机号,需要 scope 权限,也就是企业用户哈。

  • quickLoginAnonymousPhone:获取华为账号绑定的匿名手机号,需要 scope 权限,也就是企业用户哈。

  • permissions:用于获取用户授权临时凭据和用户身份认证信息,与 scopes 属性不能同时为空。

  • serviceauthcode:用户授权临时凭据。

  • idtoken:用户身份认证信息。

  • forceAuthorization:表示华为账号未登录时,是否需要强制拉起华为账号登录页。默认值:true。

  • state:随机数并做一致性校验。该参数与响应体中返回的 state 比较。

  • nonce:该参数会包含在返回的 ID Token 中,通过校验一致性,可用于防止重放攻击。

  • idTokenSignAlgorithm:默认值:PS256,用于指定 ID Token 的签名算法。

  • supportAtomicService:在元服务场景下,当传入 scopes 包含 profile 时,是否支持获取用户头像昵称。如果该值为 true,可以正常获取用户头像昵称。如果该值为 false,执行授权请求将返回 1001500003 错误代码。

获取请求数据

请求返回的结果

  • data:用户授权结果数据,可以查看 SDK 文档,AuthorizationWithHuaweiIDCredential

  • state:响应体中返回的 state

完整代码

实现的效果如下

  • 未授权时,会有弹窗提示:

  • 然后就可以显示用户头像和名字了

(转载自 CSDN,作者:baobao 熊)

广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,IT之家所有文章均包含本声明。

文章价值:
人打分
有价值还可以无价值
置顶评论
    热门评论
      文章发布时间太久,仅显示热门评论
      全部评论
      一大波评论正在路上
        取消发送
        分享成功

        长按关注IT之家公众号
        阅读更多精彩文章

        查看更多原创好文
        软媒旗下人气应用

        如点击保存海报无效,请长按图片进行保存分享