接口名 | 描述 |
|---|---|
获取授权接口,通过AuthorizationWithHuaweiIDRequest传入一键登录的scope:quickLoginAnonymousPhone,即可在授权结果中获取到用户UnionID、OpenID、匿名化手机号。 | |
华为账号Button登录组件。 | |
注册华为账号一键登录按钮的结果回调。 |
在华为账号一键登录场景下,获取匿名手机号为空或无法获取到明文手机号时,可能有以下原因:
在华为账号一键登录场景下,获取匿名手机号为空或无法获取到明文手机号时,建议通过以下步骤排查解决:
Q:华为一键登录,服务端如何拿到完整手机号?
A:服务端开发可以使用Access Token调用获取用户信息接口获取用户信息,从用户信息中获取用户绑定的完整手机号。
Q:华为账号登录使用自定义按钮登录,不用LoginWithHuaweiIDButton获取的Authorization Code,服务器是否可以获取明文手机号?
A:不可以,必须用LoginWithHuaweiIDButton且申请了华为账号一键登录权限后获取到的Authorization Code才能取到明文手机号。
Q:部分华为账号进行华为账号一键登录时,登录页面显示空白。
A:如果用户的华为账号为邮箱账号,并且没有绑定手机账号,此时quickLoginAnonymousPhone调用AuthorizationWithHuaweiIDRequest授权请求获取匿名手机号,手机号为空。此时需要进行空值判断并引导用户使用其他登录方式,否则使用空手机号进行后续登录处理,会导致页面空白,登录失败。
Q:华为一键登录,本地运行到手机可以拿到匿名手机号,为什么发布测试拿不到匿名手机号?
A:如果是调试包,修改app.json5中的versionCode即可;如果是发布包,需修改系统时间到25小时以后。
Q:华为一键登录在开启代理后报错errCode:1001500001。
A:原因是开启代理后的域名未添加进域名校验白名单,可以在正常登录后,把公钥指纹缓存到本地再开启代理。
Q:开发者服务端请求华为账号服务端的一键登录获取华为账号绑定号码和UnionID/OpenID报错,提示javax.net.ssl.sSLHandshakeException: Remote host closed connection during handshake,如何解决?
A:华为账号使用的证书是全球可信证书,出现此问题一般是开发者启用了代理导致的,如Nginx正向代理访问互联网系统,又在NG上面配置了转发访问规则,对华为账号https地址进行校验,这种情形就会出现该问题,建议开发者在Nginx代理时对华为账号证书处理下。
Q:一键登录获取华为账号绑定号码失败,报错“session timeout”,但偶尔会获取成功。
A:获取华为账号绑定号码请求时,Request Body需要传入access_token,但access_token存在特殊字符,导致请求失败,需要对Request Body传入的access_token数据进行URLEncoder.encode。
Q:一键登录中在API17的设备上能正常实现华为一键登录功能,API18,19的云测试设备一直提示报错显示scope权限问题,从API18开始增加了什么权限的校验吗?
A:从API18开始,在LoginWithHuaweiIDButton组件参数LoginWithHuaweiIDButtonParams中新增riskLevel字段。该字段需设置为true,具体可参考文档:客户端开发。
Q:调用LoginWithHuaweiIDButton组件,在LoginWithHuaweiIDButtonParams参数中设置风险等级字段标识riskLevel为true,即使用获取风险等级,需要什么前提条件吗?
A:应用在使用获取风险等级能力之前,需要完成对应的scope权限申请,scope权限申请审批未完成或未通过,将报错1001502014 应用未申请scopes或permissions权限。若不使用的话可设置为false。
Q:华为账号登录,使用自定义按钮登录时会有用户授权弹窗吗?
A:自定义按钮登录不会有用户授权弹窗。
Q:华为账号一键登录授权,为什么使用调试证书在5.1的设备上无法获得授权,在6.0以上系统就正常授权?
A:6.0以上系统做了优化,针对于调试证书,可以不配置指纹证书。6.0以下版本还是需要配置指纹证书。
合作咨询
我们的专家服务团队将竭诚为您提供专业的合作咨询服务
解决方案
精准高效的一站式服务支持,助力开发者商业成功