gpt4 book ai didi

android - AWS CognitoInternalErrorException

转载 作者:行者123 更新时间:2023-11-30 00:41:02 29 4
gpt4 key购买 nike

我正在构建一个应用程序,我在其中使用 AWS Cognito 创建用户帐户。大多数时候我都可以让它正常工作,我已经成功地制作了所有必要的类和处理程序来创建和验证用户,以及其他一切。但是,我似乎只有在用户创建帐户后立即尝试登录时才会遇到这个奇怪的问题。

com.amazonaws.mobileconnectors.cognitoidentityprovider.exceptions.CognitoInternalErrorException: Authentication failed due to an internal error

如果我重新启动应用程序,我可以正常登录,所以在创建帐户后立即登录是个问题。它非常不具体,文档只是说“发生内部错误。重试您的请求,但如果问题仍然存在,请通过在 AWS 论坛上发布消息与我们联系以提供详细信息。”你如何解决这个问题?

最佳答案

基本上,在您创建帐户并对其进行身份验证后,AWS API 相关类之一中缓存了一些内容,这些内容仍然指向未通过身份验证的帐户。只有在创建帐户后尝试立即登录时才会发生此错误。在我的例子中,在大多数情况下,所有 AWS Cognito API 代码都包含在一个管理器/帮助程序类中,我的是一个 AWSHelper 类。为解决此问题,在确认用户后,在我的处理程序中,我只需在我的 Activity 中重新创建 AWSHelper,我就可以正常登录了。

GenericHandler confirmationCallback = new GenericHandler() {

@Override
public void onSuccess() {
Log.w("DMJ", "user has been confirmed!");
if (!mainActivity.updateAWS()) {
Toast.makeText(activity, "Account created! Please sign into your account", Toast.LENGTH_LONG).show();
activity.changeFragment(new SignInFragment(), "SignInFragment");
} else {
Toast.makeText(activity, "Account created!", Toast.LENGTH_LONG).show();
}
}

@Override
public void onFailure(Exception exception) {
Log.w("DMJ", "confirmation got rekt m8");
exception.printStackTrace();
}
};

在我的 MainActivity 中,我有以下方法

public boolean updateAWS() {
awsHelper = new AWSHelper(this);
if (awsHelper.isSignedIn) {
changeFragment(new HomeScreenFragment(), "HomeScreenFragment");
return true;
}
return false;
}

此外,我还没有检查过,但我怀疑如果您尝试在完全使用 onSuccess() 方法后登录用户,CognitoUser 将被更新并能够在没有 CognitoInternalErrorException

的情况下登录

关于android - AWS CognitoInternalErrorException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42586828/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com