HarmonyOS 鸿蒙Next 华为一键登录时获取不到匿名手机号

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

HarmonyOS 鸿蒙Next 华为一键登录时获取不到匿名手机号

华为一键登录时,应用传对应的scope调用AuthorizationWithHuaweiIDRequest请求获取AuthorizationWithHuaweiIDResponse响应结果,响应结果没有匿名手机号
我们已经
配置Client ID
也有quickLoginMobilePhone权限

具体代码
getQuickLoginAnonymousPhone() {
// 创建授权请求,并设置参数
const authRequest = new authentication.HuaweiIDProvider().createAuthorizationWithHuaweiIDRequest();
// 获取匿名手机号需传quickLoginAnonymousPhone这个scope,传参之前需要先申请“华为账号一键登录”权限
//(权限名称为:quickLoginMobilePhone),后续才能获取匿名手机号数据
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) {
WPlog.i(TAG, ‘Succeeded in authentication.’);
const quickLoginAnonymousPhone: string = anonymousPhone;
return;
}
WPlog.i(TAG, ‘Succeeded in authentication. AnonymousPhone is empty.’);
// 未获取到匿名手机号需要跳转到应用自定义的登录页面
}).catch((error: BusinessError) => {
this.dealAllError(error);
})
} catch (error) {
this.dealAllError(error);
}
}


更多关于HarmonyOS 鸿蒙Next 华为一键登录时获取不到匿名手机号的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

针对HarmonyOS鸿蒙Next华为一键登录时获取不到匿名手机号的问题,以下是一些可能的解决方案:

  1. 检查权限申请

    • 确保已经正确申请了一键登录所需的敏感权限。
    • 检查scope参数是否包含quickLoginAnonymousPhone,且该权限已生效。
  2. 确认账号状态

    • 使用的华为账号必须是中国大陆账号。
    • 该华为账号必须已绑定手机号,否则无法获取匿名手机号。
  3. 服务器部署

    • 如果应用服务器需要获取华为账号绑定号码,服务器必须部署在中国大陆境内。
  4. 系统时间调整

    • 若调用接口仍未获取到手机号,尝试将调试设备系统时间向后调整24小时。
  5. 检查代码实现

    • 确保代码实现符合华为开发者文档中的规范,特别是关于一键登录和获取匿名手机号的部分。

如果以上步骤均无法解决问题,建议联系华为开发者官网客服以获取更专业的帮助。官网地址是:https://www.itying.com/category-93-b0.html

更多关于HarmonyOS 鸿蒙Next 华为一键登录时获取不到匿名手机号的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


scope权限已经申请了,UnionID、OpenID都能拿到,就是匿名手机号为空,获取到的匿名手机号为空,说明华为账号没有绑定手机号、权限未申请或未生效、登录的华为账号是儿童账号

回到顶部