Como faço para recuperar uma senha do usuário no Amazon Cognito?

3 minuto de leitura
0

Quero recuperar uma senha do usuário no Amazon Cognito.

Resolução

Há duas maneiras de recuperar uma senha do usuário no Amazon Cognito:

  • Por meio de um e-mail ou número de telefone verificado.
  • Por meio de uma senha do usuário via administrador.

Verificação de e-mail ou número de telefone

Você pode usar o comando da API ForgotPassword para recuperar a senha de um usuário. O comando da API ForgotPassword envia um código de recuperação para um e-mail ou número de telefone verificado. O código de recuperação é válido por uma hora. Em seguida, use o comando da API ConfirmForgotPassword para inserir um código de confirmação que redefina a senha.

Observação: se você perceber erros ao executar os comandos da AWS Command Line Interface (AWS CLI), verifique se está usando a versão mais recente da AWS CLI.

Comandos da AWS CLI:

ForgotPassword

aws cognito-idp forgot-password --client-id 38fjsnc484p94kpqsnet7mpld0 --username jane@example.com

Saída:

{
  "CodeDeliveryDetails": {
    "Destination": "j***@e***.com",
    "DeliveryMedium": "EMAIL",
    "AttributeName": "email"
  }
}

ConfirmForgotPassword

aws cognito-idp confirm-forgot-password --client-id 3n4b5urk1ft4fl3mg5e62d9ado --username=diego@example.com --password PASSWORD --confirmation-code CONF_CODE

Observação: você deve passar --secret-hash no comando da CLI se atender aos dois requisitos a seguir:

  • Seus comandos da AWS CLI têm --client-id como parâmetro.
  • O cliente da aplicação está configurado com um segredo.

Para calcular o hash secreto de um cliente de aplicação, consulte [How do I troubleshoot "Unable to verify secret hash for client

" errors from my Amazon Cognito user pools API?](https://repost.aws/pt/knowledge-center/cognito-unable-to-verify-secret-hash) (Como soluciono erros de “Não é possível verificar o hash secreto do cliente

” da minha API de grupos de usuários do Amazon Cognito?)

Redefinição do administrador

Observação: caso não seja o administrador, entre em contato com o administrador para concluir as ações a seguir.

Quando você chama o comando da API AdminResetUserPassword, a senha atual é invalidada e você deve alterá-la. Se um usuário tentar fazer login depois que o comando da API for chamado, a aplicação fará o seguinte:

  • Recupere PasswordResetRequiredException.
  • Direcione o usuário a redefinir a senha com o fluxo de senha esquecida.

Além disso, chamar a API resulta no envio de uma mensagem ao usuário com um código para alterar a senha se:

  • O grupo de usuários tiver a verificação por telefone configurada e
  • Existir um número de telefone ou e-mail verificado para o usuário.

Comandos da AWS CLI:

AdminResetUserPassword

aws cognito-idp admin-reset-user-password --user-pool-id us-west-2_aaaaaaaaa --username diego@example.com

ConfirmForgotPassword

aws cognito-idp confirm-forgot-password --client-id 3n4b5urk1ft4fl3mg5e62d9ado --username diego@example.com --password PASSWORD --confirmation-code CONF_CODE

AdminSetUserPassword

Como administrador, você também pode usar o comando da API AdminSetUserPassword para chamar a senha do usuário em um grupo de usuários. A senha pode ser temporária ou permanente. Se for temporária, o status do usuário entrará no estado FORCE_CHANGE_PASSWORD. Quando você faz login, a resposta InitiateAuth/AdminInitiateAuth contém o desafio NEW_PASSWORD_REQUIRED. Se você não fizer login antes que expire, não poderá fazer login e deverá redefinir a senha. Depois de definir uma nova senha, ou se a senha for permanente, o status do usuário será definido como CONFIRMED (CONFIRMADO).

aws cognito-idp admin-set-user-password --user-pool-id us-west-2_aaaaaaaaa --username diego@example.com --password Hello@123 --permanent

AWS OFICIAL
AWS OFICIALAtualizada há um ano