2017-12-01 3 views
-1

Ich versuche, den Benutzer mit AWS Cognito anzumelden.UUID (Sub) eines Benutzers kann während der Registrierung nicht abgerufen werden: Amazon Cognito

ich aus dem Anmeldeverfahren verstehen in these docs gezeigt, dass die Rückruf der Anmeldungen Methode gibt err and data und Datenparameter sind usersub oder UUID haben (zum Beispiel von UUID: 671fff45-77aa-4867-b11f-47c8bfa246a9). ich nicht in der Lage bin, das Verfahren (data.UserSub) zu nennen, um es abzurufen, schnell wirft einen Fehler

Wert vom Typ ‚AWSCognitoIdentityUserPoolSignUpResponse‘ hat kein Mitglied

‚UserSub‘

3. print-Anweisung Siehe in SignUp(), um den vollen Kontext zu verstehen.

class Login: UIViewController{ 
    var pool: AWSCognitoIdentityUserPool? 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     let AWSCognitoUserPoolsSignInProviderKey = "UserPool" 
     self.pool = AWSCognitoIdentityUserPool.init(forKey: AWSCognitoUserPoolsSignInProviderKey) 

     signUp() 

    } 

} 


func signUp(){ 

    let userNameValue = "+" + UserData.mobileNumberWithCountryCode 
     print("userNameValue: \(userNameValue)") 
    let passwordValue = "somePassword" 

     var attributes = [AWSCognitoIdentityUserAttributeType]() 

    self.pool?.signUp(userNameValue, password: passwordValue, userAttributes: attributes, validationData: nil).continueWith {[weak self] (task) -> Any? in 

    guard let strongSelf = self else { 
        print("Returninig nil on Strong Self") 
        return nil 
       } 

       DispatchQueue.main.async(execute: { 
        if let error = task.error as? NSError { 

         print("There is an error") 

        }else if let result = task.result { 
         // The above line prints userName 
         print("userName after sub:\(result.user.username)") 

         //the below line throws a swift error: Value of type 'AWSCognitoIdentityUserPoolSignUpResponse' has no member 'UserSub' 
         print("userName after sub:\(result.UserSub)") 

       } 

} 
} 

Antwort

0

Welche Version des SDK verwenden Sie? Wenn Sie mit einer aktuellen Version sind wahrscheinlich haben Sie gerade das Gehäuse falsch, sollte es .userSub angezeigt: http://docs.aws.amazon.com/AWSiOSSDK/latest/Classes/AWSCognitoIdentityProviderSignUpResponse.html#//api/name/userSub

+0

Hier sind die SDK-Versionen für iOS, die ich benutze: 'pod‚AWSCore‘,‚~> 2.5.0 '' 'pod 'AWSCognitoIdentityProvider', '~> 2.5.0'' – kurrodu

+0

Wie kann ich auch den' userSub' erhalten, wenn der Benutzer sich anmeldet. – kurrodu

+1

Der einfachste Weg ist, die Methode 'getDetails' für das Benutzerobjekt aufzurufen. – behrooziAWS

Verwandte Themen