He usado la llamada a la API ForgotPassword para restablecer mi contraseña. Sin embargo, Amazon Cognito no ha enviado el correo electrónico ni el mensaje de texto SMS con el código de verificación.
Resolución
Comprobación de las carpetas de correo no deseado y correo basura
Asegúrate de que el correo electrónico de verificación no vaya a las carpetas de correo no deseado o correo basura del usuario.
Confirmación de que el usuario existe en el grupo de usuarios
Confirma que el usuario existe en el grupo de usuarios de Cognito. Para usar la consola de Cognito para buscar usuarios en el grupo de usuarios, consulta Administración y búsqueda de cuentas de usuario. También puedes usar la API AdminGetUser.
Comprobación del estado del usuario
Hasta que los usuarios creados por los administradores inicien sesión con la contraseña proporcionada, el estado del usuario es FORCE_CHANGE_PASSWORD de forma predeterminada.
Si el estado del usuario es FORCE_CHANGE_PASSWORD, los usuarios no pueden usar la API ForgotPassword y no reciben el código de verificación. En su lugar, Cognito solicita a los usuarios que cambien su contraseña.
Comprobación de cómo el usuario puede recuperar la cuenta
Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulta Solución de problemas de AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.
Para recuperar la cuenta, debes verificar la configuración de la cuenta de usuario. Comprueba si el método de entrega del mensaje de recuperación es por correo electrónico, teléfono, solo correo electrónico, solo teléfono, teléfono si está disponible o ninguno.
Sigue estos pasos:
- Abre la consola de Cognito.
- Selecciona el grupo de usuarios.
- En Autenticación, selecciona Iniciar sesión.
- En la sección Recuperación de la cuenta de usuario, marca las opciones de Método de entrega del mensaje de recuperación. A continuación, confirma que el método de entrega es un atributo verificado para el usuario.
Es posible que los usuarios con el estado CONFIRMADO no tengan un correo electrónico o un número de teléfono verificados para recuperar la contraseña. Al seleccionar la casilla de verificación para crear cuentas, debes verificar el correo electrónico y el número de teléfono de las cuentas de usuario que creó un administrador. Los administradores pueden usar la llamada a la API AdminUpdateUserAttributes para marcar el correo electrónico y el número de teléfono como verificados.
Para establecer la dirección de correo electrónico de un usuario como verificada, ejecuta el siguiente comando admin-update-user-attributes de la AWS CLI y especifica email_verified:
aws cognito-idp admin-update-user-attributes --user-pool-id example-userpool-id --username example-username --user-attributes
Name=email_verified,Value=true --region example-region
Nota: Sustituye example-userpool-id, example-username y example-region por tus valores.
Para establecer el número de teléfono de un usuario como verificado, ejecuta el siguiente comando admin-update-user-attributes y especifica phone_number_verified:
aws cognito-idp admin-update-user-attributes --user-pool-id example-userpool-id --username example-username --user-attributes
Name=phone_number_verified,Value=true --region example-region
Nota: Sustituye example-userpool-id, example-username y example-region por tus valores.
Comprobación de la cuota de Amazon SNS
Cognito utiliza Amazon Simple Notification Service (Amazon SNS) para enviar mensajes de texto SMS. La cuota de gasto predeterminada de Amazon SNS para las cuentas es de 1,00 USD al mes. Para comprobar o cambiar la cuota de gasto de la cuenta, consulta Configuración de las preferencias de mensajería SMS mediante la consola de administración de AWS.
Importante: Si la cuota de gasto de la cuenta que has establecido supera tu cuota de servicio, SNS no publica mensajes SMS.
Para obtener aumentos de la cuota, consulta Solicitud de aumentos en la cuota mensual de gasto de SMS de Amazon SNS.
Comprobación de la cuota de Amazon SES
Cognito usa Amazon Simple Email Service (Amazon SES) para entregar correos electrónicos. De forma predeterminada, Cognito permite un número limitado de correos electrónicos diarios para tu grupo de usuarios. Para obtener más información, consulta Cuotas de número y tamaño de recursos.
Para establecer una entrega de correo electrónico superior, puedes configurar tu grupo de usuarios para que utilice tu configuración de correo electrónico de Amazon SES. Para obtener instrucciones, consulta Configuración de correo electrónico para los grupos de usuarios de Amazon Cognito.
Restablecimiento de la contraseña del usuario mediante la API AdminSetUserPassword
Los administradores pueden usar la API AdminSetUserPassword para establecer la contraseña de un usuario en un grupo de usuarios de Cognito como temporal o permanente. Los usuarios con contraseñas temporales deben iniciar sesión y cambiar la contraseña temporal antes de que venza. Cuando un usuario restablece la contraseña temporal o la contraseña es permanente, el estado cambia a CONFIRMADO.
Información relacionada
Motivos de error en la entrega de SMS
admin-get-user
AdminResetUserPassword