华为帐号服务(Account Kit)为开发者提供简单、安全的登录授权功能,用户不必输入帐号、密码和繁琐验证,就可以通过华为帐号快速登录应用,即刻使用App。这篇文章收集了开发者们集成华为帐号服务中会遇到的典型问题,并给出了解决方法,希望为其他遇到类似问题的开发者提供参考。

1 .redirect_url是什么,如何配置回调地址

(1)回调地址redirect_rul不需要是真实的页面地址,redirect_rul是OAuth2.0协议定义的一个用来做以下用途的虚拟地址,用户配置一个https://xxxx类似的自定义字符串就好了。

(最好根据自己业务属性定义一个有意义的字符串)

(2)在OAuth2.0协议中redirect_url的用途如下:

如果是web应用,OAuth服务器授权后,会回调跳转到这个地址。web应用需要拦截这个回调地址来接收Auth Code。获取AT的时候,要把回调地址作为参数传回,OAuth服务器会校验回调地址和code是匹配的,否则返回错误码。

(3)如何设置redirect_url? 参见官网文档说明

2 .openId、unionId有什么区别?

openId:同一个用户,不同应用,openId值不同,单个应用内唯一。

unionId:开发者帐号ID,同一个用户,同一个开发者帐号下管理的不同应用,unionId相同。

应用接入华为帐号登录可以获取到OpenId(同一个用户的不同应用,OpenId值不同),使用OpenId标识用户,多个应用之间同一个华为帐号用户在开发者系统内会被标识为多个用户。如果开发者希望在多个应用之间标识用户的唯一性,可以使用UnionId(对于同一个用户,同一个开发者帐号下管理的不同应用,UnionId值相同)。特别注意的是,标识用户唯一性的应用必须是在同一个开发者帐号下管理,一个应用转移到另外一个帐号后,UnionId值也会变化。

3. 怎样判断帐号是否已登录?

通过silentSignIn接口,调用到onSuccess里面并且拿到的authAccount不为空则说明回调成功,帐号是已登录状态。

Task<AuthAccount> task = service.silentSignIn();
task.addOnSuccessListener(new OnSuccessListener<AuthAccount>() {
@Override
public void onSuccess(AuthAccount authAccount) {
if(null != authAccount) {
showLog("success "); }
}
});

4 .调用服务端接口user.getTokenInfo接口报错invalid session

(1)排查传参是否正确

(2)access_token需要UrlEncode一下,不然里面有特殊符号的解析就会报invalid session

接口文档:

https://developer.huawei.com/consumer/cn/doc/development/HMSCore-References/account-gettokeninfo-0000001050050585

5 .调用oauth2/v3/token接口,redirect_uri是否必传

(1)使用Authorization Code换取Access_Token、Refresh Token、ID Token,这个参数是必须要传入的

(2)使用Refresh Token获取新的Access Token,redirect_url不需要传

参考官网文档

6. Authorization Code 、Access Token、Refresh Token的有效期分别是多久?

Authorization Code的有效期是5分钟,该code是一次性的,申请后使用一次之后就会失效。

Access Token的有效期是1小时。

Refresh Token Token当前默认有效期180天。

7. 常见错误码分析

7.1 错误码:907135700

该错误码说明调用网关查询应用scope失败,可以排查下面几项:

1.排查设备网络是否有问题,一般是当前网络不可用或者当前网络无法正常访问scope下载站点,比如防火墙限制等。

2.检查自己的appId是否在开发者联盟上面已经注册

3.可能是手机时间错误,误认为SSL证书过期,从而无法下载scope以致鉴权失败。

7.2 错误码:907135701

该错误码说明openGW没有配置scope,appid没有申请权限,或者环境和appid不匹配导致,可以排查下面几项:

1.检查自己的appId是否在开发者联盟上面已经注册

2.查看agconnect-services.json 文件中的app_id是否跟AGC平台上的appid一致;

3.查看agconnect-services.json文件是否在工程的app目录下,agconnect-services.json文件必须在app目录下,如下图所示:

4.查看appId和HMS spk环境是否匹配,同是商用环境或者测试环境

7.3 错误码:907135702

该错误码说明openGW没有配置指纹证书,请在开发者联盟上配置指纹证书,可以排查以下几点:

1.检查自己的appId是否在开发者联盟上面已经注册

2.SHA256指纹是否在联盟上配置,可以参考官网文档

7.4 错误码:6003

该错误码说明证书指纹校验不匹配,需要检查当前客户端应用打包的证书签名是否与AppGallery Connect网站上配置的签名一致。

1.打开应用的APK,将其中“META-INF”文件夹解压出来,得到其中的“CERT.RSA”文件,通过keytool -printcert -file META-INF/CERT.RSA命令打印签名证书信息。

2.登录AppGallery Connect,单击“我的项目”,选择需要操作项目,进入项目页面后选择应用,然后在“项目设置 >常规”中检查“SHA256证书指纹”配置的信息是否与步骤1)的指纹一致。

证书配置可以参考官网文档

了解更多详情>>

访问华为开发者联盟官网

获取开发指导文档

华为移动服务开源仓库地址:GitHubGitee

关注我们,第一时间了解 HMS Core 最新技术资讯~

【FAQ】接入华为帐号服务过程中常见问题总结的更多相关文章

  1. 【FAQ】华为帐号服务报错 907135701的常见原因总结和解决方法

    很多开发者在接入华为帐号服务时,经常会出现907135701的报错.根据官网文档说明,错误码907135701表示: 这个错误码在安卓和鸿蒙上都会出现,导致该报错的原因有很多,开发者可以按照下面几点进 ...

  2. 【FAQ】接入HMS Core地图服务过程中常见问题总结

    HMS Core地图服务(Map Kit)给开发者提供一套地图开发调用的SDK,助力全球开发者实现个性化地图呈现与交互,方便轻松地在应用中集成地图相关的功能,全方位提升用户体验. 在日常工作中,我们会 ...

  3. 【接入指南】一个Demo带你玩转华为帐号服务

    在<接入指南:一文带你了解华为帐号服务>中已经给大家介绍了华为帐号服务有哪些优势,如一键授权登录华为全场景共享.共享华为帐号所有用户资源.帐号安全可靠.接入方便快捷等,以及为什么能帮助开发 ...

  4. 【FAQ】在华为鸿蒙车机上集成华为帐号的常见问题总结

    随着新一代信息技术与汽车产业的深度融合,智能网联汽车正逐渐成为汽车产业发展的战略制高点,无论是传统车企还是新势力都瞄准了"智能座舱"这种新一代人机交互方式.面对竞争如此激烈的车机市 ...

  5. 【FAQ】干货满满,接入HMS Core应用内支付服务过程中一些常见问题总结(2)来啦

    HMS Core应用内支付服务(In-App Purchases,IAP)为应用提供便捷的应用内支付体验和简便的接入流程.该服务支持客户端和服务端两种开发形式,具体可以参考官方文档 上次,我们分享和总 ...

  6. 接入HMS Core应用内支付服务过程中一些常见问题总结

    华为HMS Core应用内支付服务(In-App Purchases,IAP)为应用提供便捷的应用内支付体验和简便的接入流程.该服务支持客户端和服务端两种开发形式,具体可以参考官方文档. 往期文章:常 ...

  7. 【FAQ】运动健康服务REST API接口使用过程中常见问题和解决方法总结

    华为运动健康服务(HUAWEI Health Kit)为三方生态应用提供了REST API接口,通过其接口可访问数据库,为用户提供运动健康类数据服务.在实际的集成过程中,开发者们可能会遇到各种问题,这 ...

  8. 【FAQ】申请运动健康服务验证环节常见问题及解答

    华为 HMS Core 运动健康服务(HUAWEI Health Kit)提供原子化数据开放.应用在获取用户数据授权后,可通过接口访问运动健康数据,对用户数据进行读写等操作,为用户提供运动健康类数据服 ...

  9. (转)CloudStack 安装及使用过程中常见问题汇总

    CloudStack 安装及使用过程中常见问题汇总             在做工程项目中对CloudStack 安装及使用过程中常见的几个问题及如何解决做一个总结.   1.Windows XP虚拟 ...

  10. 【FAQ】接入HMS Core推送服务过程中一些常见问题总结

    HMS Core 推送服务(Push Kit)是华为提供的消息推送平台,建立了从云端到终端的消息推送通道.开发者通过集成推送服务,可以向客户端应用实时推送消息,构筑良好的用户关系,提升用户的感知度和活 ...

随机推荐

  1. 【转载】重装系统小贴士:ssh、vscode免密登录

    ssh安装 apt install openssh-server 然后到cd /etc/ssh下找sshd_config文件,打开把允许远程root登录的选项改为yes 重启ssh服务:/etc/in ...

  2. 【Azure 云服务】Azure Cloud Service中的错误事件 Error Event(Defrag/Perflib) 解答

    问题描述 在Azure Cloud Service的实例中,收集到各种 Error Event 内容,本文针对所收集的三种Event进行解析. 1: This operation is not sup ...

  3. 【Azure 环境】中国区Azure B2C 是否支持手机验证码登录呢?

    问题描述 中国区Azure B2C 是否支持手机验证码登录呢? 问题回答 在没有原生 Phone sign-up and sign-in for user flows (中国区不支持,Global A ...

  4. 【Azure Developer】CURL 发送Oauth2 Token请求获取到 404 Not Found 问题

    问题描述 当使用 Postman 向AAD 发送如下请求时候,得到了404 Not Found的错误. "curl --location --request POST 'https://lo ...

  5. 基于 BDD 理论的 Nebula 集成测试框架重构(下篇)

    本文首发于 Nebula Graph 公众号 NebulaGraphCommunity,Follow 看大厂图数据库技术实践. 在上篇文章中,我们介绍了 Nebula Graph 的集成测试的演进过程 ...

  6. Beckhoff 倍福 漏洞-整理(持续更新)

    工控漏洞整理网站 http://ivd.winicssec.com/index.php/Home/Search/search.html?keyword=Beckhoff

  7. AutoNumber VsCode插件开发

    AutoNumber VsCode插件开发 ::: details 目录 目录 AutoNumber VsCode插件开发 Step. 2: 安装脚手架 Step. 3: 创建空项目 Step. 4: ...

  8. hesitation 单词学习 犹豫 hes 就是 her 粘 助记单词 here

    hesitation 单词学习 犹豫 hes 就是 her 粘 助记单词 here hes + itation(ite + ate + ion) hesitation 美: [ˌhezɪˈteɪʃ(ə ...

  9. 关于vscode的复制粘贴的问题

    有的是因为安装了vim的插件,卸掉即可.或者直接在快捷键设置里面直接改变复制粘贴的快捷键!

  10. springboot打jar包

    参考,欢迎点击原文:https://www.jianshu.com/p/84883627db67(简书) https://www.cnblogs.com/dk1024/p/10802007.html( ...