写点什么

【FAQ】HarmonyOS SDK 闭源开放能力 —Account Kit (6)

作者:HarmonyOS SDK
  • 2025-06-26
    贵州
  • 本文字数:985 字

    阅读完需:约 3 分钟

1.问题描述:


在单框架 HarmonyOS 拿到的 openid 与双框架 HMS Core 拿到的 openid 是相同的吗?


解决方案:


相同的吗?


不相同。首先用户 openid 的生成规则是:由用户账号和应用 ID 加密生成的; 在这个基础上单框架和双框架的应用 ID 是一定不相同的, 所以单双的 openid 也不会相同。


推荐使用 unionid,其生成规则是:由用户账号和应用开发者账号签名而成, 如果开发者账号下管理了多个应用,并且这些应用需要共享同一个华为账号的用户信息,可以使用 UnionID 作为用户标识。


2.问题描述:


鸿蒙 App 中不同用户的 unionid 跟 openid 是不同的吗?


解决方案:


unionId 和 openId 两个参数在平台返回的是不一样的,每个华为账号都有单独的 unionId 和 openId 参数值。


1、UnionID 是华为帐号用户在同一个帐号下产品的身份 ID,同一个用户,同一个帐号下管理的不同应用,UnionID 值相同。


2、OpenID 是华为帐号用户在不同类型的产品的身份 ID,同一个用户,不同应用,OpenID 值不同。


3.问题描述


调用 AuthorizationWithHuaweiIDRequest 时,因为规范不能把 forceAuthorization 设置为 true,导致有时无法触发授权且回调 1001502002 应用未授权。


解决方案:


在调用 AuthorizationWithHuaweiIDRequest 时,如果 forceAuthorization 参数不能设置为 true,确实可能会导致授权页面不会自动弹出,从而需要用户手动进行授权。


对于这种情况,虽然不能强制用户进行授权,但可以通过以下方式优化用户体验和应用的行为:


1、明确告知用户 :在应用的适当位置,明确告知用户需要进行授权以使用某些功能,并指导用户如何进行授权。


2、检查授权状态 :在用户使用相关功能前,先检查应用的授权状态。如果未授权,可以提示用户并提供授权按钮,点击后直接跳转到授权页面。


3、处理未授权情况 :在用户尝试访问需要授权的功能时,如果检测到未授权,可以提供一个快速授权的方式,如使用 AuthorizationWithHuaweiIDRequest 将 forceAuthorization 设置为 true,或者引导用户在应用设置中完成授权。


4.问题描述:


如何在通过华为账号登录的同时,弹窗向用户申请手机号弹窗,类似 iOS 的 Apple 账号登录?


解决方案:


华为一键登录可以获取手机号,华为账号登录不会再提供类似能力。


如果觉得 UI 要求严格,可以使用 Deveco 插件辅助开发,一键生成 UI 代码,直接使用,两分钟搞定 UI 开发,参考链接:


https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/account-phone-unionid-login-V5#section12250103482815

用户头像

HarmonyOS SDK

关注

HarmonyOS SDK 2022-06-16 加入

HarmonyOS SDK通过将HarmonyOS系统级能力对外开放,支撑开发者高效打造更纯净、更智能、更精致、更易用的鸿蒙应用,和开发者共同成长。

评论

发布
暂无评论
【FAQ】HarmonyOS SDK 闭源开放能力 —Account Kit (6)_harmoyos_HarmonyOS SDK_InfoQ写作社区