
4.1 原理和功能分析
华为账号遵循OAuth 2.0[1]和OpenID Connect[2]国际标准协议,具备高安全性的双因素认证能力,验证因子包括密码、手机验证码、邮箱验证码、图片验证码、身份信息等因素,具备极高的安全性,为用户提供数字资产和个人隐私的安全保护能力。在手机、平板、电视和车机等平台上,用户可以通过华为账号快速、便捷地登录App。
Account Kit主要包含3个部件。
1)HMS Core APK中与Account Kit相关的部分:承载账号登录、授权等能力。
2)Account SDK:用于封装Account Kit提供的能力,提供接口给开发者App使用。
3)华为OAuth Server:华为账号授权服务器,负责管理授权数据,为开发者提供授权和鉴权能力。
App和Account Kit的交互原理如图4-1所示。
图4-1 华为账号服务交互原理
具体交互原理分析如下。
①App调用Account SDK接口向HMS Core APK请求Authorization Code、ID Token、头像和昵称等信息。
②HMS Core APK展示华为账号的授权页面,请求获取用户授权。
③~⑤HMS Core APK向华为OAuth Server请求Authorization Code和ID Token,并返回给App。
⑥App将Authorization Code和ID Token传给App Server,App Server对ID Token进行验证。
⑦~⑧App Server将Authorization Code和client_secret传给华为OAuth Server,获取AccessToken和RefreshToken。
⑨Access Token或ID Token验证通过后,App Server生成自己的Token,返回给App,完成登录过程。
[1] OAuth2.0协议:https://oauth.net/2/。
[2] OpenID Connect协议:https://openid.net/connect/。