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
方便给下关于agc部分代码片段吗,看下您这块代码如何实现的。
更多关于HarmonyOS鸿蒙Next中agc认证服务 - 华为登录的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
你检查一下这个地方你有没有配置ID:


两个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平台一致的证书信息。
就是手动签名的,况且手机号认证的可以正常用的,
- 使用真机调试。
- 不支持模拟器和浏览器。
检查一下签名,是否使用的手动签名,设备调试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未正确初始化。以下是几个关键排查点:
- 检查项目配置:
- 确保在module.json5中正确声明了AGC依赖:
"dependencies": [
{
"bundleName": "com.huawei.agconnect.auth",
"version": "1.9.1.300"
}
]
- 确认SDK初始化:
- 在应用启动时(如EntryAbility的onCreate)必须调用:
agconnect.auth().initialize();
- 华为账号服务检查:
- 确保已在AGC控制台开启"华为账号"登录方式
- 检查应用的SHA256证书指纹是否与AGC控制台配置一致
- 代码调用时机:
- 确保在调用signInHwid()前已完成SDK初始化
- 建议在onStart生命周期中调用登录方法
- 常见解决方案:
// 正确调用示例
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);
}
如果问题仍然存在,建议检查开发环境:
- 确保使用的是HarmonyOS Next最新SDK
- 清除项目缓存后重新构建
- 检查设备/模拟器是否已安装最新华为移动服务(HMS)