HarmonyOS鸿蒙Next中接入华为账号登录问题

HarmonyOS鸿蒙Next中接入华为账号登录问题

auth.signIn({
    autoCreateUser: true,
    "credentialInfo": {
      "kind": 'hwid'
    }
  }).then(signInResult => {
    hilog.info(0x0000, 'testTag', '%{public}s',  `signInHwid success. result: ${signInResult.getUser().getUid()}`);
  })
    .catch(error => {
      hilog.error(0x0000, 'testTag', '%{public}s', `signInHwid error, Code: ${error.code}, message: ${error.message}`);
    })
})

为什么照着文档接入了华为的认证,在模拟器的报错信息是这个:signInHwid error, Code: 12300001, message: true

这里没问题

onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
  this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET);

  let file = this.context.resourceManager.getRawFileContentSync('agconnect-services.json');
  let json: string = buffer.from(file.buffer).toString();
  auth.init(this.context, json);

  hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onCreate');
}

更多关于HarmonyOS鸿蒙Next中接入华为账号登录问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

这个只能用真机测试,然后你的项目要开启认证服务

cke_853.png

更多关于HarmonyOS鸿蒙Next中接入华为账号登录问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS Next中接入华为账号登录,需使用Account Kit。首先在DevEco Studio中配置agconnect-services.json。创建AccountAuthService实例,调用signIn()方法。通过AccountAuthParams设置授权类型,如ID_TOKEN。使用AccountAuthManager.getService()获取服务。登录成功后回调返回AuthAccount对象,包含用户ID等信息。需在manifest.json添加权限ohos.permission.ACCOUNT_MANAGER。错误处理通过AccountAuthError捕获。

这个错误代码12300001通常表示华为账号服务初始化失败。根据你提供的代码,可能的原因有:

  1. agconnect-services.json文件配置不正确,请检查:
  • 文件是否放在resources/rawfile目录下
  • 文件内容是否完整,特别是client_id和api_key等关键字段
  1. 初始化时机问题:
  • 确保在调用signIn之前auth.init已经完成
  • 建议在onCreate中添加初始化状态检查
  1. 模拟器环境限制:
  • 部分华为服务在模拟器上可能受限
  • 检查模拟器是否已登录华为账号

建议先检查agconnect-services.json文件配置是否正确,然后尝试在真机环境测试。错误信息中的"message: true"表明可能是服务端返回的原始错误,需要结合完整日志分析。

回到顶部