Ir para o conteúdo

Por que o Amazon Cognito não envia o código de verificação por e-mail ou mensagem de texto SMS com a chamada de API ForgotPassword?

6 minuto de leitura
0

Quero saber por que o Amazon Cognito não enviou um e-mail com código de verificação ou mensagem de texto do serviço de mensagens curtas (SMS) quando eu uso a chamada de API ForgotPassword.

Resolução

Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.

Verificar as pastas de spam e lixo eletrônico

Certifique-se de que o e-mail de verificação não vá para as pastas de spam ou lixo eletrônico do usuário.

Confirmar se o usuário está no grupo de usuários

Confirme se o usuário está no Grupo de usuários Amazon Cognito. Para usar o console do Amazon Cognito para pesquisar usuários no grupo de usuários, consulte Gerenciamento e pesquisa de contas de usuários. Também é possível usar a chamada de API AdminGetUser.

Verificar o status do usuário

Verifique se o status do usuário não é FORCE_CHANGE_PASSWORD.

Até que os usuários criados pelos administradores entrem com a senha fornecida, o status do usuário é FORCE_CHANGE_PASSWORD por padrão.

Se o status do usuário for FORCE_CHANGE_PASSWORD, o usuário não poderá usar a chamada de API ForgotPassword e não receberá o código de verificação. Em vez disso, o Amazon Cognito solicita que o usuário altere sua senha.

Recuperar a conta da AWS do usuário

Se você chamar a API Esqueci a Senha quando seu nome de usuário e número de telefone não forem verificados, você receberá um dos seguintes erros:

  • Na AWS CLI:
    "An error occurred (InvalidParameterException) when calling the ForgotPassword operation: Cannot reset password for the user as there is no registered/verified email or phone_number"
  • No console do Amazon Cognito:
    "Could not reset password for the account, please contact support or try again."

Para recuperar a conta do usuário, verifique a configuração da conta do usuário. Verifique se o método de entrega da mensagem de recuperação é e-mail, telefone, somente e-mail, somente telefone, telefone, se disponível, ou nenhum.

Conclua as etapas a seguir:

  1. Abra o console do Amazon Cognito.
  2. Selecione o grupo de usuários.
  3. Em Autenticação, escolha Entrar.
  4. Na seção Recuperação da conta de usuário, verifique as opções em Método de envio da mensagem de recuperação. Em seguida, confirme se o método de envio é um atributo verificado para o usuário.
  5. Confirme se o método de envio é um atributo verificado para o usuário.

Os usuários no status CONFIRMED podem não ter um e-mail ou número de telefone verificado para recuperação de senha. Ao marcar a caixa de seleção de verificação para criar contas, você deve verificar o e-mail e o número de telefone das contas de usuário que um administrador criou.

Para resolver esse problema, use um dos métodos a seguir para definir o status verificado do seu e-mail e número de telefone como verdadeiro:

Atualize seus atributos de usuário

Se você for administrador, execute a seguinte chamada de API AdminUpdateUserAttributes:

aws cognito-idp admin-update-user-attributes --user-attributes Name=example-verification-method,Value=true --user-pool-id example-userpoolID --username example-user-name

Observação: substitua example-verification-method por email_verified ou phone_number_verified, dependendo do método de entrega da mensagem de recuperação do usuário. Substitua example-userpoolID pelo ID do grupo de usuários e example-user-name pelo nome do usuário que deseja executar a chamada de API Esqueci a Senha.

Se você for um usuário, faça login e execute a seguinte chamada de API UpdateUserAttributes:

aws cognito-idp update-user-attributes --user-attributes Name=example-verification-method,Value=true --access-token example-access-token

Observação: substitua example-verification-method por email_verified ou phone_number_verified, dependendo do método de entrega da mensagem de recuperação do usuário. Substitua example-access-token pelo valor do seu token de acesso.

Acionar Lambda de pré-inscrição
Use o gatilho Lambda de pré-inscrição para definir os atributos de e-mail e número de telefone de um usuário como verificados.

SignUp
Se você for um usuário, conclua as seguintes etapas:

  1. Execute a seguinte chamada de API SignUp:
    aws cognito-idp sign-up --client-id example-client-ID --username example-user-name
    Observação: substitua example-client-ID pelo ID do cliente da aplicação em que você deseja se inscrever. Substitua example-user-name pelo seu nome de usuário.
  2. Observe o valor da Sessão na saída do comando anterior.
  3. Execute a seguinte chamada de API ConfirmSignUp:
    aws cognito-idp confirm-sign-up --client-id example-client-ID --username example-user-name --confirmation-code example-confirmation-code
    Observação: substitua example-client-ID pelo ID do cliente da aplicação em que você deseja se inscrever. Substitua example-user-name pelo seu nome de usuário. Substitua example-confirmation-code pelo valor da Sessão que você anotou na etapa 2.

Se você for administrador, execute a seguinte chamada de API AdminConfirmSignUp:

aws cognito-idp admin-confirm-sign-up --client-id example-client-ID --username example-user-name

Observação: substitua example-client-ID pelo ID do cliente da aplicação. Substitua example-user-name pelo nome de usuário.

Verificar o limite de gastos da conta para mensagens SMS

O Amazon Cognito usa o Amazon Simple Notification Service (Amazon SNS) para enviar mensagens de texto SMS. Se a cota de gastos da conta que você definiu exceder o limite de gastos da sua conta, o Amazon SNS não publicará mensagens SMS.

Para verificar ou alterar o limite de gastos da conta, consulte Definir preferências de mensagens SMS usando o AWS Management Console.

Verificar a cota do Amazon SES

O Amazon Cognito usa o Amazon Simple Email Service (Amazon SES) para entregar e-mails. Por padrão, o Amazon Cognito permite um número limitado de e-mails diários para seu grupo de usuários. Para mais informações, consulte Cotas de número e tamanho do recurso.

Para definir uma maior entrega de e-mail, é possível configurar seu grupo de usuários para usar sua configuração de e-mail do Amazon SES. Para obter instruções, consulte Configurações de e-mail para grupos de usuários do Amazon Cognito.

Usar a chamada de API AdminSetUserPassword para redefinir a senha do usuário

Os administradores podem usar a chamada de API AdminSetUserPassword para definir a senha de um usuário em um grupo de usuários do Amazon Cognito como temporária ou permanente. Os usuários com senhas temporárias devem entrar e alterar a senha temporária antes que ela expire. Depois que um usuário redefine a senha temporária ou a senha é permanente, o status muda para CONFIRMED.

Informações relacionadas

Motivos de falha na entrega de SMS

admin-get-user

AdminResetUserPassword

AWS OFICIALAtualizada há um ano