2017-09-08 2 views
0

Comment obtenir l'utilisateur dans la fonction Lambda? L'utilisateur est authentifié dans Cognito et appelle lambda avec API Gateway. La méthode API Gateway dispose d'un autorisateur AWS_IAM et de la case à cocher "Intégration de Lambda Proxy" cochéeUtilisation d'AWS Lambda avec Cognito et API Gateway

Répondre

1

Si vous avez vérifié AWS_IAM API Gateway, l'identité de l'utilisateur final disponible pour votre fonction. Vous pouvez accéder à l'ID d'identité comme suit.

exports.handler = function(event, context) { 
    var identity = event.requestContext.identity.cognitoIdentityId; 
    console.log("clientID = " + identity); 

    context.succeed("Your client ID is " + identity); 
} 

Ensuite, en utilisant la méthode AWS SDK for Cognito invoquant describeIdentity-property, vous devriez être en mesure de récupérer des informations supplémentaires disponibles pour l'identité.

var params = { 
    IdentityId: 'STRING_VALUE' /* required */ 
}; 
cognitoidentity.describeIdentity(params, function(err, data) { 
    if (err) console.log(err, err.stack); // an error occurred 
    else  console.log(data);   // successful response 
}); 
+0

Il n'y a pas de propriété context.identity. J'appelle l'API en utilisant https://www.npmjs.com/package/aws-api-gateway-client l'objet de contexte a des propriétés: callbackWaitsForEmptyEventLoop, logGroupName, logStreamName, nomFonction, memoryLimitInMB, functionVersion, invokeid, awsRequestId, invokedFunctionArn – Ildar

+0

est event.requestContext.identity.cognitoIdentityId dans l'objet événement. Merci – Ildar

+0

J'ai vérifié les invocations mobiles de SDK. Mais merci mettra à jour la réponse en conséquence. – Ashan