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
这个只能用真机测试,然后你的项目要开启认证服务
更多关于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通常表示华为账号服务初始化失败。根据你提供的代码,可能的原因有:
- agconnect-services.json文件配置不正确,请检查:
- 文件是否放在resources/rawfile目录下
- 文件内容是否完整,特别是client_id和api_key等关键字段
- 初始化时机问题:
- 确保在调用signIn之前auth.init已经完成
- 建议在onCreate中添加初始化状态检查
- 模拟器环境限制:
- 部分华为服务在模拟器上可能受限
- 检查模拟器是否已登录华为账号
建议先检查agconnect-services.json文件配置是否正确,然后尝试在真机环境测试。错误信息中的"message: true"表明可能是服务端返回的原始错误,需要结合完整日志分析。