HarmonyOS 鸿蒙Next 华为一键登录在未点击登录前无法获取手机号 但部分App展示匿名手机号

发布于 1周前 作者 sinazl 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 华为一键登录在未点击登录前无法获取手机号 但部分App展示匿名手机号

华为一键登录不能在未点击登录按钮前拿到手机号,但是有些App会展示匿名手机号,请问是如何实现的?

3 回复
  getQuickLoginAnonymousPhone() {
    // 创建授权请求,并设置参数
    const authRequest = new authentication.HuaweiIDProvider().createAuthorizationWithHuaweiIDRequest();
    // 获取匿名手机号需传quickLoginAnonymousPhone这个scope,传参之前需要先申请“华为账号一键登录”权限
    authRequest.scopes = ['quickLoginAnonymousPhone'];
    // 用于防跨站点请求伪造
    authRequest.state = util.generateRandomUUID();
    // 一键登录场景该参数只能设置为false
    authRequest.forceAuthorization = false;
    const controller = new authentication.AuthenticationController();
    try {
      controller.executeRequest(authRequest).then((response: authentication.AuthorizationWithHuaweiIDResponse) => {
        // 获取到UnionID、OpenID、匿名手机号
        const unionID = response.data?.unionID;
        const openID = response.data?.openID;
        const anonymousPhone = response.data?.extraInfo?.quickLoginAnonymousPhone as string;
        if (anonymousPhone) {
          hilog.info(0x0000, 'testTag', 'Succeeded in authentication.');
          const quickLoginAnonymousPhone: string = anonymousPhone;
          return;
        }
        hilog.info(0x0000, 'testTag', 'Succeeded in authentication. AnonymousPhone is empty.');
        // 未获取到匿名手机号需要跳转到应用自定义的登录页面
      }).catch((error: BusinessError) => {
        this.dealAllError(error);
      })
    } catch (error) {
      this.dealAllError(error);
    }
  }
  // 错误处理
  dealAllError(error: BusinessError): void {
    hilog.error(0x0000, 'testTag',
      `Failed to login, errorCode is ${error.code}, errorMessage is ${error.message}`);
  }

quickLoginAnonymousPhone为匿名手机号

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

更多关于HarmonyOS 鸿蒙Next 华为一键登录在未点击登录前无法获取手机号 但部分App展示匿名手机号的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


那个是虚拟号码. 并不是真实的手机号.

在HarmonyOS鸿蒙Next系统中,对于华为一键登录功能在未点击登录前无法获取手机号的问题,这通常是由于系统安全机制与权限管理策略的设计所致。一键登录功能旨在保护用户隐私,避免在用户未明确授权的情况下泄露其手机号信息。

部分App能够展示匿名手机号,这可能是因为这些App采用了特定的技术手段或通过与华为系统接口的特殊合作,实现了在登录前展示一种“模拟”或“占位”的手机号形式,用于界面展示或功能预览,而非真实的用户手机号。

此现象可能与App的具体实现方式、鸿蒙系统的版本更新或相关权限设置有关。开发者需要确保遵循鸿蒙系统的最新开发指南和权限管理要求,以正确实现一键登录功能。

如果开发者遇到具体的技术实现难题,建议仔细查阅鸿蒙系统的官方开发文档,了解最新的API接口和权限管理策略。同时,也可以检查App的代码实现,确保在请求手机号权限时遵循了系统的规范。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部