1. 帐号服务介绍
华为帐号是用户访问华为云业务的凭证,拥有华为帐号的用户,可以使用华为云业务,如华为云服务、华为游戏中心、华为应用市场等。
华为帐号的开放基于OAuth2.0协议标准,在获得用户授权后,应用可以获取用户在华为帐号系统的基本信息,如OpenID、UnionID、用户昵称、头像、邮箱、手机号等。
OpenID:应用使用华为帐号登录后,会获得当前登录的华为帐号对该应用开放的唯一标识。
UnionID与OpenId的区别:使用同一个华为帐号登录不同的应用,返回的OpenID值不同,但是UnionID是相同的。所以如果开发者需要在多个应用之间标识用户的唯一性,可以使用UnionID。
接入华为帐号后即可获取OpenID,但是获取UnionID需要在申请帐号服务时,勾选“启用UnionId”。
在华为开发者联盟上注册成为开发者,并完成实名认证。
在AppGallery Connect上完成快应用的创建。
在AppGallery Connect上开通华为帐号服务。
华为帐号服务是华为扩展接口,而非厂商联盟规范,请安装华为快应用IDE进行接入。
【Step1】快应用调用account.getProvider接口判断当前设备是否支持华为帐号服务。返回 huawei 表示支持,否则表示不支持。
【Step2】快应用调用account.authorize接口获取Authorization Code。
【Step3】判断是否需要重新获取Authorization Code。
【Step4】快应用客户端将获取的Code存储到服务端,服务端调用rest接口通过Code获取Access Token,最后服务端将获取的Access Token返回给快应用客户端。
【Step5】若获取的Access Token失效,则服务端调用rest接口通过Refresh Token重新获取Access Token,然后服务端再将重新获取的Access Token返回给快应用客户端。
【Step6】快应用调用account.getProfile接口获取用户基本信息,包括OpenID和用户昵称、头像等。
【Step7】【可选】快应用调用account.getPhoneNumber获取用户手机号码信息。
Q:调用account.authorize,出现signInByBaseScope Authorize base profile fail, code=1的报错信息,如何处理?
出现此错误是由于调试设备上没有安装HMS Core,请到华为应用市场下载并安装最新版本的HMS Core。
Q:如何在手机上取消对快应用的用户授权?
进入手机设置页面,点击登录的帐号,菜单选择“隐私中心 > 控制对您帐号的访问”,点击需要取消授权的应用,点击“取消授权”。
Q:如何查看快应用rpk文件的签名?
通过快应用加载器加载该rpk,返回到加载器首页,在使用记录列表中长按该快应用,弹出菜单中选择“管理”进入应用信息界面,见下图中红框部分。
Q:接入帐号服务时出现异常,如何处理?
华为帐号接口为厂商定制接口,为了方便定位问题,调试时,请安装华为快应用IDE进行调试。
出现异常请参考如下操作进行定位:
1. 检查是否已在“华为开发者联盟”申请华为帐号服务。
2. 调用account.getProvider,请确保获取返回值为huawei后,再调用其他接口。
3. 如果出现1002的错误码,请检查使用IDE生成的签名信息和“华为开发者联盟”上配置的证书指纹是否保持一致。
Q:account.authorize接口常见错误码及处理建议?
错误码 | 描述 | 处理建议 |
200 | 通用错误,一般是网关请求网络异常导致,具体错误描述可以在message中查看 | 出现403网络异常错误码时,建议尝试切换网络,或者检查是否有传入scope |
201 | 用户拒绝授权 | |
202 | 接口传入参数错误 | 请对传入参数进行检查 |
1002 | 签名校验失败 | 请检查rpk是否为正式构建的版本,rpk包使用的签名是否与“华为开发者联盟”上配置的指纹签名保持一致 |
慕课视频链接:
华为开发者学堂-面向开发者学习、认证和职业发展的人才生态平台
开发文档链接: