0

Also ich bin mit Cognito und ihre Beta-User-Pools Feature in Javascript. Ich schaffe erfolgreich Benutzer dank der Dokumentation hier:Wie authentifizieren Sie einen Benutzer in einem Benutzerpool über Cognito, wenn die Fehlermeldung lautet, dass Benutzername und Kennwort nicht übereinstimmen, obwohl sie dies tun?

http://docs.aws.amazon.com/cognito/latest/developerguide/using-amazon-cognito-user-identity-pools-javascript-examples.html

Wenn ich versuche, und die Benutzer authentifizieren, obwohl ich eine seltsame Fehlermeldung sagen:

NotAuthorizedException: Falscher Benutzername oder Passwort.

Ich verstehe nicht, warum dies der Fall ist, da ich die Werte für userName und das Passwort, das ich verwendet habe, um den Benutzer zu erstellen, buchstäblich funktioniert, der einwandfrei funktioniert.

Unten ist mein Code, um den Benutzer zu authentifizieren:

//----- Setup 
AWS.config.region = 'us-east-1'; // Region 
    AWS.config.credentials = new AWS.CognitoIdentityCredentials({ 
     IdentityPoolId: 'myIdentityPoolId' 
    }); 

    AWSCognito.config.region = 'us-east-1'; 

    AWSCognito.config.credentials = new AWS.CognitoIdentityCredentials({ 
     IdentityPoolId: 'myIdentityPoolId' 
    }); 

    var poolData = { UserPoolId : 'myUserPoolId', 
     ClientId : 'myClientId' 
    }; 

//-----Authenticate a user 
    alert('Authenticate a user with application'); 
    var authenticationData = { 
     Username : 'markie17061993', 
     Password : 'MeowWoof123456789!', 
    }; 
    var authenticationDetails = new AWSCognito.CognitoIdentityServiceProvider.AuthenticationDetails(authenticationData); 
    var poolData = { UserPoolId : 'myUserPoolId', 
     ClientId : 'myClientId' 
    }; 
    var userPool = new AWSCognito.CognitoIdentityServiceProvider.CognitoUserPool(poolData); 
    var userData = { 
     Username : 'markie17061993', 
     Pool : userPool 
    }; 
    var cognitoUser = new AWSCognito.CognitoIdentityServiceProvider.CognitoUser(userData); 
    alert('hiss'); 
    cognitoUser.authenticateUser(authenticationDetails, { 
     onSuccess: function (result) { 
      console.log('access token + ' + result.getAccessToken().getJwtToken()); 
     }, 

     onFailure: function(err) { 
      alert(err); 
     }, 

    }); 

Haben Sie etwas falsch hier sehen? Ich dachte, vielleicht mein Username Parameter in diesen beiden Orten soll einen anderen Wert oder etwas sein:

var authenticationData = { 
     Username : 'markie17061993', 
     Password : 'MeowWoof123456789!', 
    }; 

var userData = { 
     Username : 'markie17061993', 
     Pool : userPool 
    }; 

Dank

Antwort

2

Ihr Code nicht zeigen, wenn Sie die neu angemeldeten Benutzer bestätigen nicht. Wenn Sie nicht sind, würde das die erklären. This example ist genau das, was Sie verfolgen möchten.

Wenn Sie nicht bestätigen möchten, dass die Benutzer von Ihrer App aus angemeldet sind, sollten Sie PreSignUp trigger bis autoConfirm Ihre Benutzer verwenden.

+0

Wenn ich den Benutzerpool eingerichtet habe, habe ich keine telefonische oder E-Mail-Bestätigung gewählt, also glaube ich nicht, dass es das ist, oder fehlt mir etwas? Darauf bezieht sich das richtig? –

+0

Auch wenn dies nicht der Fall ist, werden von Cognito-Benutzerpools standardmäßig Benutzer in einem unbestätigten/nicht bestätigten Zustand erstellt. Wenn Sie das nicht möchten, benötigen Sie den PreSignUp-Trigger, der alle Benutzer automatisch bestätigt. –

+0

Vielen Dank! –