Desencadenador de Lambda posterior a la autenticación. - Amazon Cognito

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Desencadenador de Lambda posterior a la autenticación.

Amazon Cognito invoca este desencadenador después de que un usuario inicie sesión, lo que le permite agregar lógica personalizada después de que Amazon Cognito autentique al usuario.

Información general sobre el flujo de autenticación

Desencadenador de Lambda de posautenticación: flujo del cliente

Para obtener más información, consulte Flujo de autenticación de los grupos de usuarios.

Parámetros del desencadenador de Lambda de posautenticación

La solicitud que Amazon Cognito envía a esta función de Lambda es una combinación de los parámetros que se indican a continuación y los parámetros comunes que Amazon Cognito agrega a todas las solicitudes.

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

Parámetros de la solicitud posterior a la autenticación

newDeviceUsed

Este indicador señala si el usuario ha iniciado sesión en un nuevo dispositivo. Amazon Cognito solo establece esta marca si el valor de los dispositivos recordados del grupo de usuarios es Always o User Opt-In.

userAttributes

Uno o varios pares de nombre y valor que representan atributos de usuario.

clientMetadata

Uno o varios pares de clave-valor que puede proporcionar como datos de entrada personalizados a la función de Lambda que especifica para el desencadenador de posautenticación. Puede transferir estos datos a la función de Lambda mediante el parámetro ClientMetadata en las acciones de la API AdminRespondToAuthChallenge y RespondToAuthChallenge. Amazon Cognito no incluye los datos transferidos del parámetro ClientMetadata en las operaciones de la API AdminInitiateAuth y InitiateAuth en la solicitud que transfiere a la función de autenticación posterior.

Parámetros de la respuesta posterior a la autenticación

Amazon Cognito no espera ninguna información de devolución adicional en la respuesta. La función puede utilizar operaciones de la API para consultar y modificar los recursos o registrar metadatos de eventos en un sistema externo.

Tutoriales de autenticación

Inmediatamente después de que Amazon Cognito inicie la sesión de un usuario, activa la función de Lambda de autenticación posterior. Consulte estos tutoriales de inicio de sesión en JavaScript, Android e iOS.

Plataforma Tutorial
SDK de identidad para JavaScript Inicio de sesión de usuarios con JavaScript
SDK de identidad para Android Inicio de sesión de usuarios con Android
SDK de identidad para iOS Inicio de sesión de usuarios con iOS

Ejemplo de invocación posterior a la autenticación

Mediante esta función de Lambda de posautenticación de ejemplo, se envían datos de un inicio de sesión correcto a CloudWatch Logs.

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 transfiere la información del evento a la función de Lambda. A continuación, la función devuelve el mismo objeto de evento a Amazon Cognito con los cambios en la respuesta. En la consola de Lambda puede configurar un evento de prueba con los datos relevantes para el desencadenador de Lambda. El siguiente es un evento de prueba para este código de ejemplo:

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