这是常见的代码,除了“ signout”调用。
final CognitoUser user = awsUserPool.getUser(email);
user.signOut();
user.getSessionInBackground(new AuthenticationHandler() {
@Override
public void onSuccess(CognitoUserSession userSession, CognitoDevice newDevice) { usefulfunction(); }
@Override
public void getAuthenticationDetails(AuthenticationContinuation authenticationContinuation, String userId) {
// The API needs user sign-in credentials to continue
AuthenticationDetails authenticationDetails = new AuthenticationDetails(userId, password, null);
// Pass the user sign-in credentials to the continuation
authenticationContinuation.setAuthenticationDetails(authenticationDetails);
// Allow the sign-in to continue
authenticationContinuation.continueTask();
}
@Override
public void onFailure(Exception exception) { showError(exception) }
@Override
public void getMFACode(MultiFactorAuthenticationContinuation continuation) {//empty}
@Override
public void authenticationChallenge(ChallengeContinuation continuation) {//empty}
}
运行getSessionInBackground时,它将调用getAuthenticationDetails,然后依次调用onSuccess和onFailure,并显示以下错误:
“ com.amazonaws.mobileconnectors.cognitoidentityprovider.exceptions.CognitoInternalErrorException:由于内部错误而导致身份验证失败:PASSWORD_VERIFIER挑战未在身份验证流程开始时遇到”
如果删除signOut调用,则代码可以正常工作。
所以我的问题,为什么?另一个问题,如何强制AWS请求密码?
答案 0 :(得分:2)
您最近是否已更新到AWS Client v2.12.1?
我遇到此错误,作为变通方法,如果您降级到v2.12.0,该问题不再发生。