鸿蒙5.0如何快速接入端云一体化的认证服务
2025-03-31 20:59:53
145次阅读
0个评论
最后修改时间:2025-03-31 21:04:57
- 作者:咸鱼
- 团队:坚果派
- 团队介绍:坚果派由坚果等人创建,团队拥有12个华为HDE带领热爱HarmonyOS/OpenHarmony的开发者,以及若干其他领域的三十余位万粉博主运营。专注于分享HarmonyOS/OpenHarmony、ArkUI-X、元服务、仓颉。团队成员聚集在北京,上海,南京,深圳,广州,宁夏等地,目前已开发鸿蒙原生应用,三方库60+,欢迎交流。
华为的端云一体化服务提供了一个开箱即用,快速便捷的后端服务系统。星梦之舟团队也是基于端云一体化能力快速构建灵动小组件的后端业务,在几乎没有往后端花钱的前提下,就实现了20W+级别的用户支持,5W+的月活用户访问。
随着鸿蒙演进到5.0,端云一体化的SDK也进化到了kit时代,从一个独立的SDK融合到了kit以后,使用方法也迎来了全新的改变。
当前的kit已经能够支持大部分的云函数、云数据库、云存储的操作。
但是对于认证服务的支持尚有一些障碍。
端云一体化团队提供的一个认证SDK来解决这个问题。
接下来就随着一起来看一下如何快速接入认证服务体系,轻松获得一个强大的后端身份认证系统。
- 首先,我们需要额外引入一个认证服务SDK
//在“oh-package.json5”文件里面添加认证服务的编译依赖和SDK依赖。
"dependencies": {
"@hw-agconnect/auth": "^1.0.3"
}
2.在AGC控制台的认证服务中启用华为账号的认证方式。
- 然后需要在AGC控制台中配置应用签名证书指纹 登录AppGallery Connect,在“我的项目”中选择目标应用。 在“项目设置 > 常规”页面的“应用”区域,点击“SHA256证书/公钥指纹”后的“添加公钥指纹(HarmonyOS API 9及以上)”。
在“选择SHA256公钥指纹”窗口,选择应用使用的证书对应的指纹,点击“确认”。
- 配置Client ID 登录AppGallery Connect,在“我的项目”中选择目标应用,获取“项目设置 > 常规”页面“应用”区域的Client ID。
5.在工程中“entry”模块的“module.json5”文件中,新增metadata,配置name为client_id,value为上一步获取的Client ID的值。示例如下:
"module": {
"name": "xxx",
"type": "entry",
"description": "xxx",
"mainElement": "xxx",
"deviceTypes": [],
"pages": "xxx",
"abilities": [],
"metadata": [ // 配置信息如下
{
"name": "client_id",
"value": "xxx"
}
]
}
6.在需要用户登录的地方,调用auth.signIn执行基于华为Id的认证服务注册/登录。
只要当前设备已经登录了华为账号,就能直接获取到华为Id进行用户注册与认证,整个流程可以静默执行,无需用户额外提供任何信息。
import auth from '@hw-agconnect/auth';
import { hilog } from '@kit.PerformanceAnalysisKit';
auth.signIn({
autoCreateUser: true,
"credentialInfo": {
"kind": "hwid"
}
}).then(signInResult => {
hilog.info(0x0000, 'testTag', '%{public}s', `signInHwid success. result: ${signInResult.getUser().getUid()}`);
})
.catch((error: Error) => {
hilog.error(0x0000, 'testTag', '%{public}s', `signInHwid error, Code: ${error.code}, message: ${error.message}`);
})
7.最后只要在云开发的Kit中使用auth.getAuthProvider()命令获取认证服务的AuthProvider来初始化云开发Kit,就能在云开发kit中完成用户信息绑定,实现基于认证权限管控的全套后端能力。 后续如果使用云开发kit进行任何的云数据库、云存储的操作,都会自动绑定用户信息,给后端进行身份检验,防止非法操作,保证数据安全。
import { cloudCommon } from '@kit.CloudFoundationKit';
import { request } from '@kit.BasicServicesKit';
import auth from '@hw-agconnect/auth';
let provider = auth.getAuthProvider(); // 在用户登录成功的情况下调用此方法获取authProvider
cloudCommon.init({
region: cloudCommon.CloudRegion.CHINA,
authProvider: provider,
// functionOptions: {timeout: 10 * 1000},//初始化云函数服务的参数
// storageOptions: {mode: request.agent.Mode.BACKGROUND, network: request.agent.Network.ANY},//初始化云存储服务的参数
// databaseOptions: {schema: "schema", traceId: "traceId"}//初始化云数据库服务的参数
})
00
- 0回答
- 0粉丝
- 0关注
相关话题
- HarmonyOSNext 端云一体化(1)
- HarmonyOSNext 端云一体化(6)
- HarmonyOSNext 端云一体化(4)
- HarmonyOSNext 端云一体化(5)
- HarmonyOS Next 端云一体化(2)
- HarmonyOS Next 端云一体化(3)
- 【HarmonyOS Next开发】端云一体化初始化项目
- 【HarmonyOS Next开发】云开发-用户自动认证
- 鸿蒙云服务--(简单)登录页面
- 鸿蒙接入Flutter3.22
- 鸿蒙开发:如何上架一个元服务应用
- 如何快速判断 Flutter 库是否需要适配鸿蒙?纯 Dart 库无需适配!
- 【HarmonyOS Next开发】云开发-云数据库(一)
- (四三)ArkTS 服务端渲染(SSR)实践
- 第三八课:HarmonyOS Next云服务集成实践:云数据库与云函数全流程解析