问题描述:

认证服务用户重复登录报错,代码会产生错误码5的异常。但是不知道用户已登录的场景如何出现的?删除应用后再安装,还是会出现同样错误。

if (requestCode == REQUEST_SIGN_IN_LOGIN) {
val huaweiAccountData = AccountAuthManager.parseAuthResultFromIntent(data)
if (huaweiAccountData.isSuccessful) {
val credential: AGConnectAuthCredential = HwIdAuthProvider.credentialWithToken(huaweiAccountData.result.getAccessToken())
AGConnectAuth.getInstance().signIn(credential).addOnSuccessListener {
vm?.huaweiLogin(huaweiAccountData.result, it.user.uid)
}.addOnFailureListener {exception: Exception? ->
if (exception is AGCAuthException){
com.huawei.agconnect.auth.AGCAuthException: code:5 message: already sign in

【AGC】认证服务用户重复登录报错_认证服务

解决方案:

其实是开发者的代码逻辑有问题。正确的代码逻辑是requestCode == REQUEST_SIGN_IN_LOGIN的时候,就已经完成认证,按上面的代码逻辑,是完成认证以后又进行了一步认证,所以会出现用户已登录的情况。

建议按照文档指南,修改代码并重新进行集成。

可参考如下文档:​​https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-auth-android-hwaccount-0000001053532656​

另外错误码5表示当前已经使用一个帐号登录,在未登出情况下使用此帐号或者其他帐号登录,无法重复登录。可能的原因为之前已经通过其他第三方账号进行了认证服务的登录,或者进行了手机账号或邮箱账号的注册,也会自动进行登录。为避免此错误,可以在认证服务登录前通过对AGConnectAuth.getCurrentUser判空来判断当前认证服务是否已经登录。如果为空则没有登录,可以进行登录,如果不为空,可以先通过AGConnectAuth.signOut方法登出后在进行登录。


欲了解更多更全技术文章,欢迎访问​​https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh​