鸿蒙应用元服务开发-Account Kit获取手机号

鸿蒙时代
发布于 2025-4-8 16:09
浏览
0收藏

一、概述

当元服务需要获取用户手机号时,可通过调用Scenario Fusion Kit提供的Button组件,引导用户完成手机号授权。

Scenario Fusion Kit通过提供快速验证手机号Button实现了Account Kit快速验证功能:

鸿蒙应用元服务开发-Account Kit获取手机号-鸿蒙开发者社区

约束与限制
元服务满足《常见类型移动互联网应用程序必要个人信息范围规定》(对第三方网站的内容,华为不承担任何责任)中使用手机号的必要业务场景。

二、快速验证
(一)场景介绍
当元服务对获取的手机号时效性要求不高时,可调用Scenario Fusion Kit的快速验证手机号Button,向用户发起手机号授权申请,Button组件实现了Account Kit手机号授权与快速验证功能。经用户同意后,元服务可获取手机号,为用户提供相应服务。

说明

对用户选择的华为账号绑定的手机号或者新增的手机号进行验证,不保证是实时的验证,仅首次需要用户授权。

鸿蒙应用元服务开发-Account Kit获取手机号-鸿蒙开发者社区

(二)业务流程
鸿蒙应用元服务开发-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官方网站

分类
收藏
回复
举报


回复
    相关推荐