2016-08-20 13 views
1

AWS Mobile HubでUserPoolsを使用しています。私はFacebookやG +のようなプロバイダとログインすることができました。しかし、AWS UserPoolsでログインしようとすると、私はそうすることはできません。私は正常に登録し、UserPoolに完全に接続することができます(存在しないユーザー7人の間違ったパスワードを認識します)。下記の方法でログインすると、エラーが表示されます。AWS Cognito User Pool - 「 'userName'の値nullが制約を満たすのに失敗しました:メンバーはヌルであってはなりません」 - iOS

"1 validation error detected: Value null at 'userName' failed to satisfy constraint: Member must not be null"

実際にユーザー名とパスワードが正しいとはどういうことか分かりません。 (ハードコードされていても)。ここでは、私がログインに使用しているコードを見ることができます:

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 

しかし、やはり動作しません。

ありがとうございます!

+0

答えは見つかりましたか?私は現在、ここで同じ問題に直面しています。それはイライラしている。 – tyegah123

+0

いいえ! :(@ tyegah123 –

+1

SDKを最新バージョンにアップグレードして解決しました(2.4.9):D – tyegah123

答えて

-1

私は、キーは以下に類似したユーザー名USERNAMEこととはならないと考えている。

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

は、userName.valueは、我々が更新されてきたようにあなたはもうこのエラーを取得してはならないuserName.valueするスペルミスされ使用すべき実際のキー(この場合はUSERNAME)を反映するエラーメッセージ。

0

このメッセージは、あなたが入力したユーザー名がヌルであることを意味しています。そのフィールドをどのように埋め込んでいるかを詳しく知りたいと思います。

検証データが表示される限り、心配する必要はありません。そこに入る予定はなく、ユーザー名/パスワードのフィールドだけです。

+0

@Jeffを試してみましょう!ありがとう –

関連する問題