关于android:FAQ接入华为帐号服务过程中常见问题总结

9次阅读

共计 2482 个字符,预计需要花费 7 分钟才能阅读完成。

华为帐号服务(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/…

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) 的指纹统一。

证书配置能够参考官网文档

理解更多详情 >>

拜访华为开发者联盟官网
获取开发领导文档
华为挪动服务开源仓库地址:GitHub、Gitee

关注咱们,第一工夫理解 HMS Core 最新技术资讯~

正文完
 0