Estoy tratando de verificar automáticamente los correos electrónicos de los usuarios cuando los registran en mi aplicación web que está conectada a cognito.
Estoy usando el método para tratar de hacer esto
adminUpdateUserAttributes
Inmediatamente trato de hacer esto después de registrar a un usuario. El usuario está registrado correctamente, pero el correo electrónico y el teléfono de los usuarios no están verificados en la consola
¿Qué estoy haciendo mal en mi código?
Aquí está mi código:
$('#signUp').submit(function(event) { var poolData = { UserPoolId : '', // your user pool id here ClientId : '' // your app client id here }; var userPool = new AmazonCognitoIdentity.CognitoUserPool(poolData); var attributeList = []; var dataEmail = { Name: 'email', Value: $('input[name=email]').val(), }; var dataPhoneNumber = { Name: 'phone_number', Value: $('input[name=telephone]').val(), }; var attributeEmail = new AmazonCognitoIdentity.CognitoUserAttribute(dataEmail); var attributePhoneNumber = new AmazonCognitoIdentity.CognitoUserAttribute(dataPhoneNumber); attributeList.push(attributeEmail); attributeList.push(attributePhoneNumber); console.log(attributeList) userPool.signUp($('input[name=usernameSignUp]').val(), $('input[name=passwordSignUp]').val(), attributeList, null, function(err, result) { if (err) { alert(err.message || JSON.stringify(err)); return; } console.log('signed up') var cognitoUser = result.user; console.log('user name is ' + cognitoUser.getUsername()); updateUserAttribute($('input[name=usernameSignUp]').val()) }); //updates the new user to have verified phone and email using adminUpdateUserAttributes() -- this isnt working rn var cognitoidentityserviceprovider = new AWSCognito.CognitoIdentityServiceProvider(); cognitoidentityserviceprovider.adminUpdateUserAttributes({ UserAttributes: [{ Name: 'phone_number_verified', Value: 'true' }, { Name: 'email_verified', Value: 'true' } ], UserPoolId: '', Username: $('input[name=usernameSignUp]').val() }, function(err) { if (err) { console.log(err, err.stack) } else { console.log('Success!') } }) });```Para su caso de uso, debe permitir la verificación automática al registrarse.
Esto se hace en una lambda previa al registro. https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-pre-sign-up.html
Debe crear una lambda previa al registro similar a esta:
exports.handler = (event, context, callback) => { event.response.autoConfirmUser = true; event.response.autoVerifyEmail = true; event.response.autoVerifyPhone = true; callback(null, event); };