2016-10-02 2 views
0

Ich möchte den Cognito-Benutzerpool als Identitätsanbieter verwenden. Ich authentifiziere meinen Benutzer. Ich versuche dann mit dem Benutzer in der Benutzer Pool um diesen Benutzer zu integrieren, indem Sie folgende Schritte ausführen:.AWS Cognito, Fehler bei der Integration eines Benutzers in einen Benutzerpool mit einem Identitätspool

var cognitoUser = userPool.getCurrentUser(); 

if (cognitoUser != null) { 
    cognitoUser.getSession(function(err, result) { 
if (result) { 
    console.log('You are now logged in.'); 

    // Add the User's Id Token to the Cognito credentials login map. 
    AWS.config.credentials = new AWS.CognitoIdentityCredentials({ 
    IdentityPoolId: 'YOUR_IDENTITY_POOL_ID', 
    Logins: { 
    'cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>': result.getIdToken().getJwtToken() 
    } 
    }); 
} 
}); 
} 

http://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-integrating-user-pools-with-identity-pools.html

die Antwort von AWS ist „Invalid Login-Token jedoch nicht über eine gültige OpenID Connect Identitätsmarke. "

Die Anfrage Nutzlast war wie folgt aus:

{ "IdentityPoolId": "eu-west-1: idPoolValue", "Logins": { "loginString": „cognito-idp.eu-West -1.amazonaws.com/regionValue: id Tokenwert“}}

ich habe die empfindlichen Teile mit einem String ersetzt. Ich habe den Identitätspool so konfiguriert, dass der Benutzerpool als Authentifizierungsanbieter verwendet wird.

Gibt es weitere Schritte, die ich verpasst habe oder die nicht dokumentiert sind?

Antwort

0

Die Struktur der Anforderungsnutzdaten war nicht korrekt. Logins sollten eine Map sein, stattdessen war es ein Objekt mit einem Schlüsselwertpaar.

+0

Der Code, den Sie hochgeladen haben, ist für JS, Sie benötigten die Java-Version. –

Verwandte Themen