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.

El activador posterior a la autenticación no cambia el flujo de autenticación de un usuario. Amazon Cognito invoca esta Lambda una vez finalizada la autenticación y el usuario ha recibido los tokens. Añada un activador posterior a la autenticación cuando desee añadir un posprocesamiento personalizado de los eventos de autenticación, por ejemplo, ajustes de registro o perfil de usuario que se reflejarán en el siguiente inicio de sesión.

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. Para pasar estos datos a la función Lambda, puede usar el ClientMetadata parámetro en las acciones AdminRespondToAuthChallengey RespondToAuthChallengeAPI. Amazon Cognito no incluye datos del ClientMetadata parámetro ni de las InitiateAuthAPIoperaciones en AdminInitiateAuthla 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. Su función puede utilizar API operaciones para consultar y modificar sus recursos, o registrar los metadatos de los 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. Consulta estos tutoriales de inicio de sesión para JavaScript Android e iOS.

Plataforma Tutorial
JavaScript Identidad SDK Inicie sesión a los usuarios con JavaScript
Identidad de Android SDK Inicio de sesión de usuarios con Android
Identidad de iOS SDK Inicio de sesión de usuarios con iOS

Ejemplo de invocación posterior a la autenticación

Este ejemplo de función Lambda posterior a la autenticación envía los datos de un inicio de sesión correcto a 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 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": {} }