HarmonyOS鸿蒙Next中agc认证服务 - 华为登录

HarmonyOS鸿蒙Next中agc认证服务 - 华为登录

使用官方的代码,准备工作也做了,但是代码会提示 signInHwid error, Code: undefined, message: Cannot read property currentUserInstance of undefined

错误码也是undefined。

图像

文档链接:华为账号-登录-认证服务-开放能力-AppGallery Connect(HarmonyOS 5及以上) - 华为HarmonyOS开发者


更多关于HarmonyOS鸿蒙Next中agc认证服务 - 华为登录的实战教程也可以访问 https://www.itying.com/category-93-b0.html

11 回复

方便给下关于agc部分代码片段吗,看下您这块代码如何实现的。

更多关于HarmonyOS鸿蒙Next中agc认证服务 - 华为登录的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


你检查一下这个地方你有没有配置ID:

cke_533.png cke_785.png

两个ID在entry/src/main/module.json5中都要配置 不然会出现无法认证

找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:BV1S4411E7LY/?p=17

配置了ClientID,没配置appid,但配置了还是老样子(清理项目,卸载APP重新安装都不行),话说我的ClientID和APPid的值都是一样的不影响吧,如果有错误不应该是给个错误码吗?它给的错误码是的undefined,绑定agc是不是要什么条件(比如企业开发者,先上架应用商店那些),软件签名情况(有调试证书和正式证书两个签名),手机号认证的可以正常使用的,

签名证书不匹配。在File > Project Structure > Project > Signing Configs中取消勾选自动签名,手动配置与AGC平台一致的证书信息。

就是手动签名的,况且手机号认证的可以正常用的,

  • 使用真机调试。
  • 不支持模拟器和浏览器。

用的nova13Pro,最新版本5.0.1.130,都是这个错误提示,华为一键登陆是可以的,绑定agc就不行,

检查一下签名,是否使用的手动签名,设备调试id是否在签名中,

HarmonyOS Next中的AGC(AppGallery Connect)认证服务提供华为账号登录功能。该服务通过OAuth 2.0协议实现,开发者需在AGC控制台配置应用签名证书指纹和包名。集成时使用@ohos/agconnect-auth模块,调用signInWithHuaweiAccount方法触发登录流程。登录成功后返回Access Token和用户基本信息。当前版本支持静默登录和显式授权两种模式,需在manifest.json中声明ohos.permission.INTERNET权限。

根据您提供的错误信息"currentUserInstance of undefined",这通常表明AGC认证服务SDK未正确初始化。以下是几个关键排查点:

  1. 检查项目配置:
  • 确保在module.json5中正确声明了AGC依赖:
"dependencies": [
  {
    "bundleName": "com.huawei.agconnect.auth",
    "version": "1.9.1.300"
  }
]
  1. 确认SDK初始化:
  • 在应用启动时(如EntryAbility的onCreate)必须调用:
agconnect.auth().initialize();
  1. 华为账号服务检查:
  • 确保已在AGC控制台开启"华为账号"登录方式
  • 检查应用的SHA256证书指纹是否与AGC控制台配置一致
  1. 代码调用时机:
  • 确保在调用signInHwid()前已完成SDK初始化
  • 建议在onStart生命周期中调用登录方法
  1. 常见解决方案:
// 正确调用示例
import agconnect from '@hw-agconnect/api';
import '@hw-agconnect/auth';

try {
  const user = await agconnect.auth().signInHwid();
  console.log('Login success');
} catch (err) {
  console.error('Login failed:', err);
}

如果问题仍然存在,建议检查开发环境:

  1. 确保使用的是HarmonyOS Next最新SDK
  2. 清除项目缓存后重新构建
  3. 检查设备/模拟器是否已安装最新华为移动服务(HMS)
回到顶部