
鸿蒙应用元服务开发-Account Kit获取手机号
一、概述
当元服务需要获取用户手机号时,可通过调用Scenario Fusion Kit提供的Button组件,引导用户完成手机号授权。
Scenario Fusion Kit通过提供快速验证手机号Button实现了Account Kit快速验证功能:
约束与限制
元服务满足《常见类型移动互联网应用程序必要个人信息范围规定》(对第三方网站的内容,华为不承担任何责任)中使用手机号的必要业务场景。
二、快速验证
(一)场景介绍
当元服务对获取的手机号时效性要求不高时,可调用Scenario Fusion Kit的快速验证手机号Button,向用户发起手机号授权申请,Button组件实现了Account Kit手机号授权与快速验证功能。经用户同意后,元服务可获取手机号,为用户提供相应服务。
说明
对用户选择的华为账号绑定的手机号或者新增的手机号进行验证,不保证是实时的验证,仅首次需要用户授权。
(二)业务流程
流程说明:
元服务通过调用Scenario Fusion Kit对应的Button组件并设置openType为GET_PHONE_NUMBER,如果已授权则直接返回临时登录凭证Authorization Code,如果没有授权则拉起授权页,在用户授权后,返回Authorization Code。
将Authorization Code传给元服务服务器,使用Client ID、Client Secret、Authorization Code从华为服务器获取Access Token,再使用Access Token请求获取用户信息。
从用户信息中获取到手机号、UnionID、OpenID。
(三)开发前提
1、在进行代码开发前,请先确认您已完成开发准备工作。
2、元服务获取手机号之前,需要完成phone(获取您的手机号)的scope权限申请,详情参见scope权限申请,scope权限申请审批未完成或未通过,将报错1001502014 应用未申请scopes或permissions权限。
3、设备需要登录华为账号,若未登录则拉起登录页面。
(四)开发步骤
客户端开发
客户端开发参见Scenario Fusion Kit的快速验证手机号Button。
服务端开发
1.元服务服务器使用Client ID、Client Secret、Authorization Code调用获取用户级凭证的接口向华为账号服务器请求获取Access Token、Refresh Token。
注意:Client Secret、Access Token、Refresh Token需要存储在元服务服务器,不要存储在客户端,存储在客户端存在数据泄露等安全风险。
2.使用Access Token调用获取用户信息接口获取用户信息,从用户信息中获取用户手机号、UnionID、OpenID。
Access Token过期处理
由于Access Token的有效期仅为60分钟,当Access Token失效或者即将失效时(可通过REST API错误码判断),可以使用Refresh Token(有效期180天)通过刷新凭证向华为账号服务器请求获取新的Access Token。
说明
当Access Token失效时,若您不使用Refresh Token向账号服务器请求获取新的Access Token,账号的授权信息将会失效,导致使用Access Token的功能都会失败。
当Access Token非正常失效(如修改密码、退出账号、删除设备)时,业务可重新登录授权获取Authorization Code,向账号服务器请求获取新的Access Token。
Refresh Token过期处理
由于Refresh Token的有效期为180天,当Refresh Token失效后(可通过REST API错误码判断),元服务服务器端需要通知客户端,重新调用授权接口,请求用户重新授权。
本文主要引用参考HarmonyOS官方网站
