Пул пользователей AWS Cognito - значение null в userName не удовлетворяет ограничению: член не должен быть нулевым - iOS

Я работал с UserPools на AWS Mobile Hub. Мне удалось войти в систему с такими поставщиками, как Facebook и G +. Однако при попытке войти в систему с помощью пользовательских пулов AWS мне не удается это сделать. Я могу успешно зарегистрироваться и отлично подключиться к UserPool (он распознает неправильные пароли 7 несуществующих пользователей). Когда я вхожу в систему с помощью метода, показанного ниже, я получаю сообщение об ошибке:

«Обнаружена 1 ошибка проверки: значение null в 'userName' не удовлетворяет ограничению: элемент не должен быть пустым»

Я действительно не знаю, что происходит, потому что имя пользователя и пароль на самом деле правильные! (Даже если жестко запрограммирован). Здесь вы можете увидеть код, который я использую для входа в систему:

    let pool = AWSCognitoIdentityUserPool(forKey: "UserPool")
    let user: AWSCognitoIdentityUser = pool.getUser(textFieldEmail.text!)


    user.getSession(textFieldEmail.text!, password: textFieldPassword.text!, validationData:nil, scopes: nil).continueWithBlock { (task:AWSTask) -> AnyObject? in

            if task.error == nil {
                print("Got: \(task.result)")
            } else {
                print("Error while logging in: \(task.error?.userInfo["__type"]) with message: \(task.error?.userInfo["message"])")
            }

            return nil
        }

Я был бы очень признателен за помощь! Я попытался добавить информацию о данных проверки. Вещи как:

let userName:AWSCognitoIdentityUserAttributeType = AWSCognitoIdentityUserAttributeType()
    userName.name = "userName"
    iserName.value = textFieldEmail.text

Но опять же не работает.

Спасибо!


person David Cruz    schedule 20.08.2016    source источник
comment
Вы нашли на это ответ? В настоящее время я сталкиваюсь с той же проблемой. Это расстраивает.   -  person tyegah123    schedule 15.09.2016
comment
Нет!! :( @ tyegah123   -  person David Cruz    schedule 15.09.2016
comment
Я решил это, обновив SDK до последней версии. (2.4.9): D   -  person tyegah123    schedule 20.09.2016


Ответы (2)


Это сообщение означает, что ввод, который вы вводите для имени пользователя, равен нулю, я бы углубился в то, как вы заполняете это поле.

Что касается данных проверки, не беспокойтесь об этом. Он не должен входить туда, только поля имени пользователя / пароля.

person Jeff Bailey    schedule 01.09.2016
comment
Я попробую @Jeff! Огромное спасибо - person David Cruz; 01.09.2016

Я считаю, что ключ должен быть USERNAME, а не userName, как показано ниже:

    let userName:AWSCognitoIdentityUserAttributeType = AWSCognitoIdentityUserAttributeType()
          userName.name = "USERNAME"
          userName.value = textFieldEmail.text

Кроме того, userName.value неправильно написано на userName.value. Вы больше не должны получать эту ошибку, поскольку мы обновили сообщения об ошибках, чтобы отразить фактические ключи, которые следует использовать (в данном случае USERNAME).

person Ionut Trestian    schedule 22.08.2016