鸿蒙5.0如何快速接入端云一体化的认证服务。

翻生咸鱼
发布于 2025-3-31 16:05
1534浏览
0收藏

华为的端云一体化服务提供了一个开箱即用,快速便捷的后端服务系统。星梦之舟团队也是基于端云一体化能力快速构建灵动小组件的后端业务,在几乎没有往后端花钱的前提下,就实现了20W+级别的用户支持,5W+的月活用户访问。

随着鸿蒙演进到5.0,端云一体化的SDK也进化到了kit时代,从一个独立的SDK融合到了kit以后,使用方法也迎来了全新的改变。

当前的kit已经能够支持大部分的云函数、云数据库、云存储的操作。

但是对于认证服务的支持尚有一些障碍。

端云一体化团队提供的一个认证SDK来解决这个问题。

接下来就随着一起来看一下如何快速接入认证服务体系,轻松获得一个强大的后端身份认证系统。


  1. 首先,我们需要额外引入一个认证服务SDK
在“oh-package.json5”文件里面添加认证服务的编译依赖和SDK依赖。
"dependencies": {
  "@hw-agconnect/auth": "^1.0.3"
} 
  • 1.
  • 2.
  • 3.
  • 4.

2.在AGC控制台的认证服务中启用华为账号的认证方式。

鸿蒙5.0如何快速接入端云一体化的认证服务。-鸿蒙开发者社区

  1. 然后需要在AGC控制台中配置应用签名证书指纹
    登录AppGallery Connect,在“我的项目”中选择目标应用。
    在“项目设置 > 常规”页面的“应用”区域,点击“SHA256证书/公钥指纹”后的“添加公钥指纹(HarmonyOS API 9及以上)”。

鸿蒙5.0如何快速接入端云一体化的认证服务。-鸿蒙开发者社区

在“选择SHA256公钥指纹”窗口,选择应用使用的证书对应的指纹,点击“确认”。
鸿蒙5.0如何快速接入端云一体化的认证服务。-鸿蒙开发者社区

  1. 配置Client ID
    登录AppGallery Connect,在“我的项目”中选择目标应用,获取“项目设置 > 常规”页面“应用”区域的Client ID。
    鸿蒙5.0如何快速接入端云一体化的认证服务。-鸿蒙开发者社区

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"
    }
  ]
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.

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}`);
  })
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.

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"}//初始化云数据库服务的参数
})
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.

收藏
回复
举报


回复
    相关推荐