当前位置: 首页 > news >正文

【FAQ】HarmonyOS SDK 闭源开放能力 — Account Kit

1.问题描述:

退出登录之后需要手动清空页面栈和storage吗?

解决方案:

当点击退出登录或Token过期跳转至登录页时都需要显式清空路由栈,HarmonyOS路由栈(通过NavDestination组件管理)默认不会自动清空历史页面,即使调用logout接口跳转到登录页,原栈中的页面实例(如多个首页)依然存在。
不清空路由栈,可能会导致以下问题:

  1. 内存泄漏:未销毁的页面可能持续占用资源。
  2. 接口重复调用:若栈中存在多个首页实例,每个实例的aboutToAppear生命周期都可能触发接口请求,导致多次调用(如用户遇到的首页接口请求数十次的问题)。
    除了路由栈,和用户信息相关的storage也需要进行清除,建议储存的时候就根据用户分类,并做区分。"

2.问题描述:

服务端暂未开发,用户点击华为账号一键登录后,客户端APP如何通过ArkTS直接获取华为账号绑定的手机号?

解决方案:

如果服务器暂未开发,可临时在客户端APP内通过rcp模块向华为账号服务器发送请求,获取手机号。示例代码如下:

/**
* 通过rcp向华为账号服务器发送请求,获取华为账号绑定的手机号
* @param authCode 授权码,用户点击华为账号一键登录后返回授权码
* @returns
*/
async getPhoneNumberFromHWAccountServer(authCode: string): Promise<hwphoneinfo> {
let hwPhoneInfo = new HWPhoneInfo();
// 在创建应用后,由华为开发者联盟为应用分配的唯一标识
const clientId = '123456789';
// 在创建应用后,由华为开发者联盟为应用分配的密钥(Client Secret)
const clientSecret = 'abcdefghijk';
const url = 'https://account-api.cloud.huawei.com/oauth2/v6/quickLogin/getPhoneNumber';
const headers: rcp.RequestHeaders = {
""Content-Type"": ""application/json;charset=UTF-8""
}
// 为了更安全的网络访问,请务必升级到TLS1.2版本。若使用协议是TLS1.0、TLS1.1或规定外的加密套件,可能无法正常访问华为账号服务。
const securityConfig: rcp.SecurityConfiguration = {
tlsOptions: {
tlsVersion: 'TlsV1.2'
}
};
let session: rcp.Session | undefined = undefined;
try {
const request = new rcp.Request(url, 'POST');
request.headers = headers;
request.content = { ""code"": authCode, ""clientId"": clientId, ""clientSecret"": clientSecret };
session = rcp.createSession({ requestConfiguration: { security: securityConfig } });
let rsp = await session.fetch(request);
hilog.info(this.domainId, this.logTag, `rsp : ${rsp.statusCode}, ${rsp.toString()}`);
const body: ArrayBuffer | undefined = rsp.body;
if (!body) {
hilog.warn(this.domainId, this.logTag, `rsp.body is undefined, return`);
return hwPhoneInfo;
}
const textDecoder = util.TextDecoder.create('utf-8');
const bodyStr = textDecoder.decodeToString(new Uint8Array(body));
hwPhoneInfo = JSON.parse(bodyStr) as HWPhoneInfo;
hilog.info(this.domainId, this.logTag, `hwPhoneInfo: ${JSON.stringify(hwPhoneInfo)}`);
} catch (error) {
hilog.error(this.domainId, this.logTag, `getPhoneNumberFromHWAccountServer err : ${JSON.stringify(error)}`);
} finally {
if (session) {
session.close();
}
}
return hwPhoneInfo;
}class HWPhoneInfo {
openId: string = '';
unionId: string = '';
phoneNumber: string = '';
phoneNumberValid: string = '';
purePhoneNumber: string = '';
phoneCountryCode: string = '';
}

3.问题描述:

华为账号一键登录的场景下,获取匿名手机号和获取手机号有什么区别?

解决方案:

1、获取匿名手机号

在用户首次登录应用时,应用scope传quickLoginAnonymousPhone调用AuthorizationWithHuaweiIDRequest授权请求获取匿名手机号,不展示手机号明文。

获取匿名手机号是华为账号登录客户端的行为。

待用户同意协议后,点击华为账号一键登录按钮,应用可以通过HuaweiIDCredential获取到Authorization Code等数据。

2、获取手机号

在应用获取手机号之前,需要完成“华为账号一键登录”或者“获取您的手机号”的scope权限申请

将获取的Authorization Code数据传给应用服务端,应用服务端通过Authorization Code调用/oauth2/v6/quickLogin/getPhoneNumber接口(通过 phone scope权限)获取用户完整手机号和UnionID、OpenID。

获取手机号是服务端开发过程中,三方服务器和华为账号服务器的交互过程的行为,前提是用户已授权。

之后应用通过关联用户手机号(用户选择的华为账号绑定的手机号或者新增的手机号,而非当前SIM卡所对应运营商手机号)和UnionID、OpenID完成用户登录。

如果已经申请了一键登录手机号权限,对用户选择的华为账号绑定的手机号或者新增的手机号,(而非当前SIM卡所对应运营商手机号)进行验证,不保证是实时的验证,仅首次需要用户授权。但是Account Kit调用系统能力将获取华为账号登录设备上的SIM卡手机号码,与华为账号绑定的手机号进行校验(有网络即可,无需使用SIM卡移动数据)。 用户点击一键登录按钮后,结合华为账号使用过程中账号所绑定的手机号短信验证记录,90天内有验证通过的记录,则返回该华为账号绑定的手机号;若90天内没有验证通过的记录,则触发Account Kit默认提供的短信验证流程(Account Kit提供的验证页,暂不可自定义),确保返回的手机号经过验证。

http://www.jsqmd.com/news/414920/

相关文章:

  • 2026年重庆镀锌钢管厂家哪家强? 靠谱耐用 适配不同规模需求 - 深度智识库
  • 开发程序员转行至AI大模型领域的详细攻略,从程序员到AI大模型专家:一份详尽的转行攻略与学习资源
  • 2026年烟囱塔/角钢塔/监控塔/雷达塔/电力塔厂家推荐:衡水盛众钢结构专注多场景铁塔供应 - 品牌推荐官
  • Python 包定义中的聚合导出;FunASR使用同时运用vad(语音活动检测)+punc(标点恢复)+spk(说话人分割)模型
  • 【FAQ】HarmonyOS SDK 闭源开放能力 — Ads Kit
  • 2026年2月电加热蒸汽发生器厂家推荐,精准控温与持续稳定输出测评 - 品牌鉴赏师
  • 【FAQ】HarmonyOS SDK 闭源开放能力 — Core File Kit
  • 2026年污水处理臭氧发生器厂家最新推荐:自来水臭氧发生器、食品厂臭氧发生器、食品厂臭氧机、养殖场臭氧发生器选择指南 - 优质品牌商家
  • 【笔记】集合幂级数 3:逐点牛顿迭代法
  • 2026年工业废水臭氧发生器公司权威推荐:冻库臭氧机/实验室臭氧发生器/工业废水臭氧机/水果臭氧发生器/选择指南 - 优质品牌商家
  • 2026年老榆木护墙板地板厂家实力推荐:郓城县匠造木作老榆木家具厂,全系老榆木板材/风化板/柱子/大梁定制供应 - 品牌推荐官
  • 闲置京东e卡别浪费!三种实用京东e卡回收方法,轻松变现不踩坑 - 京回收小程序
  • 十大开料机品牌怎么选?全屋定制开料机品牌干货指南 - 星辉数控
  • 珠三角GEO优化服务商哪家最专业 - 品牌推荐大师1
  • 2026年全站仪综合服务推荐:南京环球测绘仪器,租赁/检定/维修/回收一站式解决方案 - 品牌推荐官
  • 基于springboot 实验室设备管理系统(源码+数据库+文档)
  • 2026年2月流体粘滞阻尼器厂家推荐,源头直供性价比之选 - 品牌鉴赏师
  • 施耐德平台商品详情API接口技术指南
  • 牛客链接
  • 腾讯云代理商:腾讯云国际站 搭建网站的明智之选还是隐藏陷阱?
  • 基于BFS的2525迷宫最短路径MATLAB实现
  • 点量云流管理平台使用教程——服务器管理用户管理
  • Nordic nRF54L15 蓝牙 6.0 BLE 赋能全场景 IoT 连接
  • 2026年军用无人机集群软硬一体化供应商推荐,猎翼无人机引领实战化变革 - 品牌2025
  • 揭秘LLM千亿级推理:分布式架构与核心优化机制全解析
  • 如何通俗地理解RAG?RAG大模型必备:如何让你的AI产品更懂你?揭秘RAG原理与实战技巧!
  • 利用施耐德平台API获取设备列表数据
  • 施耐德(Schneider)搜索列表数据接口深度实战:专有协议+证书校验+工业级高可用方案
  • 县域红色经典旅游景区DID数据2002-2025
  • Wi-Fi 6 模块技术解析与多场景应用介绍