Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Desencadenador de Lambda de prerregistro.

Modo de enfoque
Desencadenador de Lambda de prerregistro. - 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.

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.

Puede que quiera personalizar el proceso de registro en los grupos de usuarios que tienen opciones de registro de autoservicio. Normalmente, el desencadenador de prerregistro realiza análisis y registros personalizados de los nuevos usuarios, aplica estándares de seguridad y gobernanza o vincula a los usuarios de un IdP de terceros a un perfil de usuario consolidado. También es posible que tenga usuarios de confianza que no estén obligados a someterse a una verificación o confirmación.

Poco antes de registrar un usuario local o federado nuevo, Amazon Cognito activa la función de Lambda de prerregistro. Durante el proceso de registro puede utilizar esta función para analizar el evento de inicio de sesión con una lógica personalizada y modificar el usuario nuevo o rechazarlo.

Flujos de Lambda de prerregistro.

Flujo de inscripción del cliente.

Desencadenador de Lambda de prerregistro: flujo del cliente

Flujo de inscripción del servidor

Desencadenador de Lambda de prerregistro: flujo del servidor

La solicitud contiene datos de validación del cliente. Estos datos provienen de los ValidationData valores que se pasan al grupo de usuarios SignUp y a los métodos de la AdminCreateUser API.

Parámetros del desencadenador de Lambda de prerregistro

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", . . . }, "validationData": { "string": "string", . . . }, "clientMetadata": { "string": "string", . . . } }, "response": { "autoConfirmUser": "boolean", "autoVerifyPhone": "boolean", "autoVerifyEmail": "boolean" } }
{ "request": { "userAttributes": { "string": "string", . . . }, "validationData": { "string": "string", . . . }, "clientMetadata": { "string": "string", . . . } }, "response": { "autoConfirmUser": "boolean", "autoVerifyPhone": "boolean", "autoVerifyEmail": "boolean" } }

Parámetros de la solicitud anteriores a la inscripción

userAttributes

Uno o varios pares de nombre y valor que representan atributos de usuario. Los nombres de atributo son las claves.

validationData

Uno o varios pares clave-valor con datos de atributos de usuario que su aplicación pasó a Amazon Cognito en la solicitud de creación de un nuevo usuario. Envíe esta información a su función Lambda en el ValidationData parámetro de su solicitud AdminCreateUsero de SignUpAPI.

Amazon Cognito no establece sus ValidationData datos como atributos del usuario que cree. ValidationData es información de usuario temporal que usted proporciona para su activador Lambda previo al registro.

clientMetadata

Uno o varios pares clave-valor que puede proporcionar como datos de entrada personalizados a la función de Lambda que especifica para el desencadenador de prerregistro. Puede pasar estos datos a la función Lambda mediante el ClientMetadata parámetro de las siguientes acciones de la API: AdminCreateUser, AdminRespondToAuthChallengeForgotPassword, y. SignUp

Parámetros de la respuesta anterior a la inscripción

En la respuesta, puede establecer autoConfirmUser en true si desea confirmar automáticamente al usuario. Puede establecer autoVerifyEmail en true para verificar automáticamente el correo electrónico del usuario. Puede establecer autoVerifyPhone en true para verificar automáticamente el número de teléfono del usuario.

nota

Amazon Cognito ignora los parámetros de respuesta autoVerifyPhone, autoVerifyEmail y autoConfirmUser cuando la API AdminCreateUser desencadena la función de Lambda de registro previo.

autoConfirmUser

Establezca este parámetro en true para confirmar automáticamente al usuario, o en false en caso contrario.

autoVerifyEmail

Si se establece en true, se verifica la dirección de correo electrónico de un usuario registrado; en caso contrario, false. Si autoVerifyEmail está establecido en true, el atributo email debe ser un valor válido distinto de null. De lo contrario, se producirá un error y el usuario no podrá completar la inscripción.

Si el atributo email se selecciona como un alias, se creará un alias de la dirección de correo electrónico del usuario cuando se establezca autoVerifyEmail. Si ya existe un alias con esa dirección de correo electrónico, el alias se moverá al usuario nuevo y la dirección de correo electrónico del usuario anterior se marcará como no verificada. Para obtener más información, consulte Personalización de los atributos de inicio de sesión.

autoVerifyPhone

Si se establece en true, se verifica el número de teléfono de un usuario registrado; en caso contrario, false. Si autoVerifyPhone está establecido en true, el atributo phone_number debe ser un valor válido distinto de null. De lo contrario, se producirá un error y el usuario no podrá completar la inscripción.

Si el atributo phone_number se selecciona como un alias, se creará un alias de número de teléfono del usuario cuando se establezca autoVerifyPhone. Si ya existe un alias con ese número de teléfono, el alias se moverá al número de teléfono del usuario nuevo y anterior y se marcará como no verificado. Para obtener más información, consulte Personalización de los atributos de inicio de sesión.

Ejemplos de registro

Sus usuarios pueden registrarse en un inicio de sesión gestionado. También puede encontrar el código de ejemplo del SDK para la SignUpoperación enÚselo SignUp con un AWS SDK o CLI.

Ejemplo anterior a la inscripción: Confirmación automática de los usuarios de un dominio registrado

Este es un ejemplo de código de activación de Lambda. El activador previo al registro se invoca inmediatamente antes de que Amazon Cognito procese la solicitud de registro. Utiliza un atributo personalizado, custom:domain, para confirmar automáticamente a los usuarios nuevos de un determinado dominio de correo electrónico. Los usuarios nuevos que no pertenezcan al dominio personalizado se añadirán al grupo de usuarios, pero no se confirmarán automáticamente.

Node.js
export const handler = async (event, context, callback) => { // Set the user pool autoConfirmUser flag after validating the email domain event.response.autoConfirmUser = false; // Split the email address so we can compare domains var address = event.request.userAttributes.email.split("@"); // This example uses a custom attribute "custom:domain" if (event.request.userAttributes.hasOwnProperty("custom:domain")) { if (event.request.userAttributes["custom:domain"] === address[1]) { event.response.autoConfirmUser = true; } } // Return to Amazon Cognito callback(null, event); };
Python
def lambda_handler(event, context): # It sets the user pool autoConfirmUser flag after validating the email domain event['response']['autoConfirmUser'] = False # Split the email address so we can compare domains address = event['request']['userAttributes']['email'].split('@') # This example uses a custom attribute 'custom:domain' if 'custom:domain' in event['request']['userAttributes']: if event['request']['userAttributes']['custom:domain'] == address[1]: event['response']['autoConfirmUser'] = True # Return to Amazon Cognito return event
export const handler = async (event, context, callback) => { // Set the user pool autoConfirmUser flag after validating the email domain event.response.autoConfirmUser = false; // Split the email address so we can compare domains var address = event.request.userAttributes.email.split("@"); // This example uses a custom attribute "custom:domain" if (event.request.userAttributes.hasOwnProperty("custom:domain")) { if (event.request.userAttributes["custom:domain"] === address[1]) { event.response.autoConfirmUser = true; } } // Return to Amazon Cognito callback(null, 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
{ "request": { "userAttributes": { "email": "testuser@example.com", "custom:domain": "example.com" } }, "response": {} }
{ "request": { "userAttributes": { "email": "testuser@example.com", "custom:domain": "example.com" } }, "response": {} }

Ejemplo de invocación anterior a la inscripción: Confirmación y verificación automáticas de todos los usuarios

En este ejemplo se confirman todos los usuarios y se establece la verificación de los atributos email y phone_number de cada usuario si se especifican. Además, si están habilitados los alias, se crearán alias automáticamente para phone_number y email cuando esté habilitada la verificación automática.

nota

Si ya existe un alias con el mismo número de teléfono, el alias se moverá al número de teléfono del usuario nuevo y el atributo phone_number del usuario anterior se marcará como no verificado. Lo mismo sucede con las direcciones de correo electrónico. Para evitar que esto suceda, puede utilizar la ListUsers API de grupos de usuarios para comprobar si hay un usuario existente que ya utilice el número de teléfono o la dirección de correo electrónico del nuevo usuario como alias.

Node.js
exports.handler = (event, context, callback) => { // Confirm the user event.response.autoConfirmUser = true; // Set the email as verified if it is in the request if (event.request.userAttributes.hasOwnProperty("email")) { event.response.autoVerifyEmail = true; } // Set the phone number as verified if it is in the request if (event.request.userAttributes.hasOwnProperty("phone_number")) { event.response.autoVerifyPhone = true; } // Return to Amazon Cognito callback(null, event); };
Python
def lambda_handler(event, context): # Confirm the user event['response']['autoConfirmUser'] = True # Set the email as verified if it is in the request if 'email' in event['request']['userAttributes']: event['response']['autoVerifyEmail'] = True # Set the phone number as verified if it is in the request if 'phone_number' in event['request']['userAttributes']: event['response']['autoVerifyPhone'] = True # Return to Amazon Cognito return event
exports.handler = (event, context, callback) => { // Confirm the user event.response.autoConfirmUser = true; // Set the email as verified if it is in the request if (event.request.userAttributes.hasOwnProperty("email")) { event.response.autoVerifyEmail = true; } // Set the phone number as verified if it is in the request if (event.request.userAttributes.hasOwnProperty("phone_number")) { event.response.autoVerifyPhone = true; } // Return to Amazon Cognito callback(null, 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
{ "request": { "userAttributes": { "email": "user@example.com", "phone_number": "+12065550100" } }, "response": {} }
{ "request": { "userAttributes": { "email": "user@example.com", "phone_number": "+12065550100" } }, "response": {} }

Ejemplo de antes de registrarse: denegar el registro si el nombre de usuario tiene menos de cinco caracteres

En este ejemplo se comprueba la longitud del nombre de usuario de una solicitud de registro. El ejemplo devuelve un error si el usuario ha ingresado un nombre de menos de cinco caracteres de longitud.

Node.js
export const handler = (event, context, callback) => { // Impose a condition that the minimum length of the username is 5 is imposed on all user pools. if (event.userName.length < 5) { var error = new Error("Cannot register users with username less than the minimum length of 5"); // Return error to Amazon Cognito callback(error, event); } // Return to Amazon Cognito callback(null, event); };
Python
def lambda_handler(event, context): if len(event['userName']) < 5: raise Exception("Cannot register users with username less than the minimum length of 5") # Return to Amazon Cognito return event
export const handler = (event, context, callback) => { // Impose a condition that the minimum length of the username is 5 is imposed on all user pools. if (event.userName.length < 5) { var error = new Error("Cannot register users with username less than the minimum length of 5"); // Return error to Amazon Cognito callback(error, event); } // Return to Amazon Cognito callback(null, 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
{ "userName": "rroe", "response": {} }
{ "userName": "rroe", "response": {} }
PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.