2016-06-02 10 views
1

Ich benutze das AWS JavaScript sdk, um Benutzerpools in eine Webanwendung zu integrieren, die ich gerade erstelle. Der Benutzer Pool ist Setup und ich habe das Verwendungsbeispiel hier gefolgt: https://github.com/aws/amazon-cognito-identity-jsAWS Cognito Identity NotAuthorizedException

ich einen Fehler halten bekommen, die sagt: „NotAuthorizedException: Kann nicht für die Client-Geheimnis Hashwert überprüfen (meine App-Client-ID)“

AWS.config.region = 'us-east-1'; // Region 
AWS.config.credentials = new AWS.CognitoIdentityCredentials({ 
    IdentityPoolId: '...' // my identity pool id here 
}); 


AWSCognito.config.region = 'us-east-1'; 
AWSCognito.config.credentials = new AWS.CognitoIdentityCredentials({ 
    IdentityPoolId: '...' // my identity pool id here 
}) 


var poolData = { 
    UserPoolId: '...', // my user pool id here 
    ClientId: '...' // client id here 
}; 
var userPool = new AWSCognito.CognitoIdentityServiceProvider.CognitoUserPool(poolData); 

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

     var attributeList = []; 

     var dataEmail = { 
      Name : 'email', 
      Value : '[email protected]' 
     }; 
     var dataPhoneNumber = { 
      Name : 'phone_number', 
      Value : '+15555555555' 
     }; 
     var attributeEmail = new AWSCognito.CognitoIdentityServiceProvider.CognitoUserAttribute(dataEmail); 
     var attributePhoneNumber = new AWSCognito.CognitoIdentityServiceProvider.CognitoUserAttribute(dataPhoneNumber); 

     attributeList.push(attributeEmail); 
     attributeList.push(attributePhoneNumber); 

     userPool.signUp('username', 'password', attributeList, null, function(err, result){ 
      if (err) { 
       alert(err); 
       return; 
      } 
      cognitoUser = result.user; 
      console.log('user name is ' + cognitoUser.getUsername()); 
     }); 

Haben Sie Vorschläge oder mögliche Probleme mit dem obigen Code-Snippet? Vielen Dank!

+0

Vermissen Sie "IdentityPoolId:" Ich sehe nur "..."? – error2007s

+0

@ error2007s Nein, in meinem echten Code habe ich meine Identität Pool-ID, ich wollte es nur nicht öffentlich gezeigt. – user3567080

Antwort

6

Die Lösung dazu ist eigentlich ganz einfach. Sie müssen die App in aws löschen und sie ohne einen geheimen Schlüssel erneut hinzufügen, damit sie autorisiert werden kann.

1

Wenn Sie eine Webanwendung mit dem Javascript SDK erstellen, können Sie keinen geheimen Schlüssel verwenden, da er nicht gespeichert werden kann. Dies wird die Ausnahme verursachen, die Sie sehen.

Wie Sie festgestellt haben, löst das Erstellen einer App ohne geheimen Schlüssel das Problem.

Verwandte Themen