HarmonyOS 鸿蒙Next 华为登录成功,但是authAccountTask.getResult()返回的token一直为null
HarmonyOS 鸿蒙Next 华为登录成功,但是authAccountTask.getResult()返回的token一直为null
Task<AuthAccount> authAccountTask = AccountAuthManager.parseAuthResultFromIntent(data);
if (authAccountTask.isSuccessful()) {
AuthAccount authAccount = authAccountTask.getResult();
Log.e(TAG, "authAccount is " + authAccount);
Log.e(TAG, “getAuthorizationCode:” + authAccount.getAuthorizationCode());
Log.e(TAG, “getIdToken:” + authAccount.getIdToken());
Log.e(TAG, "name is " + authAccount.getDisplayName());
Log.e(TAG, "token is " + authAccount.getAccessToken());
} else {
Log.i(TAG, "signIn failed: " + ((ApiException) authAccountTask.getException()).getStatusCode());
}
开发者您好:
您的Token为空
比如:getIdToken为空,您可以看下在初始化AccountAuthParams的时候,
参数里面AccountAuthParamsHelper是否有设置setIdToken(),API文档:https://developer.huawei.com/consumer/cn/doc/HMSCore-References/accountauthparamshelper-0000001050438849#section7927324133511
另外AccountAuthParamsHelper里面的setAccessToken()方法已经弃用,不建议您这边继续调用,如果您这边需要获取AccessToken,需要调用服务端的接口去使用授权拿到的code去换AccessToken,可以参考文档:https://developer.huawei.com/consumer/cn/doc/HMSCore-Guides/android-scenario-auth-code-0000001115918596#section170912213116
针对您提到的HarmonyOS鸿蒙Next平台上登录成功后,authAccountTask.getResult()
返回的token一直为null的问题,这通常与权限配置、认证流程或API使用不当有关。以下是一些可能的原因及检查方向:
-
权限配置:确保您的应用已在
config.json
中正确配置了所需的权限,特别是与账户和认证相关的权限。 -
认证流程:检查您的登录流程是否符合HarmonyOS的认证规范。确保您使用了正确的API和参数进行账户认证。
-
API使用:
authAccountTask.getResult()
应在任务成功完成后调用。确认任务状态为成功,并且任务确实返回了结果。 -
版本兼容性:确认您的开发环境和HarmonyOS SDK版本是否最新,以及是否支持您正在使用的API。
-
日志调试:通过查看系统日志或应用日志,获取更多关于认证失败或token未返回的详细信息。
如果以上检查均无误,但问题依旧存在,可能是由于系统bug或特定环境下的异常。此时,建议您直接联系官网客服,以便获得更专业的技术支持。官网地址是:https://www.itying.com/category-93-b0.html 。