Я пытаюсь настроить аутентификацию пользователя cognito с помощью пользовательских пулов и xamarin для моего мобильного приложения (кроссплатформенное)
У меня настроен пользовательский пул с политикой по умолчанию (проход с 8 символами, специальный символ и т. Д.)и создал клиент приложения без секрета клиента.
Итак, когда я запускаю приложение, я могу подписать нового пользователя, затем я получаю код подтверждения по электронной почте, а также я могуподтвердите пользователя, отправив полученный код.
Кажется, все работает нормально, проблема в том, что когда я пытаюсь войти в приложение, я всегда получаю сообщение об ошибке «NotAuthorizedException: Неверное имя пользователя или пароль».и я все перепробовал, жестко запрограммировал пользователя / пароль, пересоздал пул пользователей, изменил политику, и я не могу понять, почему он не работает.
Вот мой код для части аутентификации:
Кнопка входа в систему:
private async void Login(object sender, EventArgs e)
{
try
{
CognitoHelper cognitoHelper = new CognitoHelper();
cognitoUser = await cognitoHelper.ValidateUser(UsuarioEntry.Text, PasswordEntry.Text);
Console.WriteLine(cognitoUser.Username);
}
catch (Exception exp)
{
Console.WriteLine(exp);
await DisplayAlert("Error","Unable to validate the username and password","Ok");
}
}
Класс CognitoHelper (проверка метода пользователя)
public async Task<CognitoUser> ValidateUser(string username, string password)
{
AmazonCognitoIdentityProviderClient provider =
new AmazonCognitoIdentityProviderClient(new AnonymousAWSCredentials(), REGION);
CognitoUserPool userPool = new CognitoUserPool(this.POOL_ID, this.CLIENTAPP_ID, provider);
CognitoUser cognitoUSer = new CognitoUser(username, this.CLIENTAPP_ID, userPool, provider);
AuthFlowResponse context = await cognitoUSer.StartWithSrpAuthAsync(new InitiateSrpAuthRequest()
{
Password = password
}).ConfigureAwait(false);
return cognitoUSer;
}