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

Comme Amazon Cognito appelle ce déclencheur après la connexion d'un utilisateur, vous pouvez ajouter une logique personnalisée après l'authentification de l'utilisateur par Amazon Cognito.

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 paramètre ClientMetadata dans les actions d'API AdminRespondToAuthChallenge et RespondToAuthChallenge. Amazon Cognito n'inclut pas les données provenant du paramètre ClientMetadata dans les opérations d'API AdminInitiateAuth et InitiateAuth dans la demande transmise à la fonction après 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 les opérations d'API pour interroger et modifier vos ressources, ou enregistrer des métadonnées d'événements dans 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 relatifs à la connexion pour JavaScript, Android et iOS.

Plateforme Didacticiel
Kit SDK d'identité pour JavaScript Connectez des utilisateurs avec JavaScript
Kit SDK d'identité pour Android Connectez des utilisateurs avec Android
Kit SDK d'identité pour iOS Connectez des utilisateurs avec iOS

Exemple de stade après l'authentification

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

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": {} }