Déclencheur Lambda après l'authentification - Amazon Cognito

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Déclencheur Lambda après l'authentification

Le déclencheur de post-authentification ne modifie pas le flux d'authentification d'un utilisateur. Amazon Cognito invoque ce Lambda une fois que l'authentification est terminée et qu'un utilisateur a reçu des jetons. Ajoutez un déclencheur de post-authentification lorsque vous souhaitez ajouter un post-traitement personnalisé des événements d'authentification, par exemple la journalisation ou les ajustements du profil utilisateur qui seront reflétés lors de la prochaine connexion.

Présentation du flux d'authentification

Déclencheur Lambda Après l'authentification - Flux client

Pour de plus amples informations, veuillez consulter Flux d'authentification de groupe d'utilisateurs.

Paramètres du déclencheur Lambda après l'authentification

La demande qu’Amazon Cognito transmet à cette fonction Lambda est une combinaison des paramètres ci-dessous et des paramètres courants qu’Amazon Cognito ajoute à toutes les demandes.

JSON
{ "request": { "userAttributes": { "string": "string", . . . }, "newDeviceUsed": boolean, "clientMetadata": { "string": "string", . . . } }, "response": {} }

Paramètres de demande après l'authentification

newDeviceUsed

Cet indicateur permet de savoir si l'utilisateur s'est connecté sur un nouvel appareil. Amazon Cognito définit cet indicateur seulement si la valeur des appareils mémorisés du groupe d'utilisateurs est Always ou User Opt-In.

userAttributes

Une ou plusieurs paires nom-valeur représentant des attributs utilisateur.

clientMetadata

Une ou plusieurs paires clé-valeur que vous pouvez fournir en tant qu'entrée personnalisée à la fonction Lambda que vous spécifiez pour le déclencheur Après l'authentification. Pour transmettre ces données à votre fonction Lambda, vous pouvez utiliser le ClientMetadata paramètre dans les actions AdminRespondToAuthChallengeet RespondToAuthChallengeAPI. Amazon Cognito n'inclut pas les données du ClientMetadata paramètre ni AdminInitiateAuthles InitiateAuthAPIopérations de la demande transmise à la fonction de post-authentification.

Paramètres de réponse après l'authentification

Amazon Cognito n'attend aucune information de retour supplémentaire dans la réponse. Votre fonction peut utiliser API des opérations pour interroger et modifier vos ressources, ou enregistrer les métadonnées des événements sur un système externe.

Didacticiels relatifs à l'authentification

Immédiatement après qu'Amazon Cognito connecte un utilisateur, il active la fonction Lambda après authentification. Consultez ces didacticiels de connexion pour JavaScript Android et iOS.

Plateforme Didacticiel
JavaScript Identité SDK Connectez les utilisateurs avec JavaScript
Identité Android SDK Connectez des utilisateurs avec Android
Identité iOS SDK Connectez des utilisateurs avec iOS

Exemple de stade après l'authentification

Cet exemple de fonction Lambda après authentification envoie les données d'une connexion réussie à Logs. CloudWatch

Node.js
const handler = async (event) => { // Send post authentication data to Amazon CloudWatch logs console.log("Authentication successful"); console.log("Trigger function =", event.triggerSource); console.log("User pool = ", event.userPoolId); console.log("App client ID = ", event.callerContext.clientId); console.log("User ID = ", event.userName); return event; }; export { handler };
Python
import os def lambda_handler(event, context): # Send post authentication data to Cloudwatch logs print ("Authentication successful") print ("Trigger function =", event['triggerSource']) print ("User pool = ", event['userPoolId']) print ("App client ID = ", event['callerContext']['clientId']) print ("User ID = ", event['userName']) # Return to Amazon Cognito return event

Amazon Cognito transmet les informations d’événement à votre fonction Lambda. Cette fonction renvoie alors le même objet d’événement à Amazon Cognito, avec d’éventuelles modifications dans la réponse. Dans la console Lambda, vous pouvez configurer un événement de test avec des données pertinentes pour votre déclencheur Lambda. Voici un événement de test pour cet exemple de code :

JSON
{ "triggerSource": "testTrigger", "userPoolId": "testPool", "userName": "testName", "callerContext": { "clientId": "12345" }, "response": {} }