Como soluciono problemas com o atributo email_verified de um usuário do Amazon Cognito?
Quero resolver problemas com o atributo email_verified para usuários do Amazon Cognito.
Breve descrição
Um grupo de usuários do Amazon Cognito tem um conjunto de atributos padrão usados para identificar usuários individuais. O atributo email_verified, que indica se o endereço de e-mail de um usuário foi verificado, pode mudar nas seguintes situações:
- Um usuário atualiza seu endereço de e-mail. Quando um usuário atualiza seu endereço de e-mail, o Amazon Cognito altera o atributo email_verified para não verificado.
- Um endereço de e-mail é configurado como um alias. Em seguida, é criado um usuário com um endereço de e-mail duplicado. Quando um endereço de e-mail é definido como um alias, somente um usuário pode manter o valor do endereço de e-mail com o atributo email_verified. Se a confirmação da conta do usuário mais novo for bem-sucedida, o alias do endereço de e-mail é transferido para o usuário mais novo. Então, o endereço de e-mail do antigo usuário é modificado para não verificado. Para obter mais informações, consulte Atributos do grupo de usuários e a seção Personalizar atributos de login.
- Um usuário federado ou um usuário vinculado a um usuário federado faz login com um mapeamento de e-mail. Quando um usuário federado faz login, um mapeamento deve estar presente para cada atributo de grupo de usuários exigido pelo grupo de usuários. Se um atributo de e-mail for mapeado, o atributo email_verified mudará para não verificado por padrão.
Resolução
Para resolver problemas com o atributo email_verified, siga as etapas que se aplicam à sua situação.
Importante: No exemplo de comandos da AWS Command Line Interface (AWS CLI) a seguir, substitua todas as instâncias de exemplos de strings pelos seus valores. (Por exemplo, substitua “example_access_token” pelo valor do seu token de acesso.)
Verificação após atualização de endereço de e-mail
Para verificar o endereço de e-mail após uma atualização do usuário:
1. Para que o Amazon Cognito envie o código de verificação para um endereço de e-mail atualizado, defina a configuração de verificação de e-mail para o grupo de usuários.
2. Se necessário, atualize o endereço de e-mail chamando a API UpdateUserAttributes ou a API AdminUpdateUserAttributes.
Um exemplo do comando update-user-attributes:
aws cognito-idp update-user-attributes --access-token "example_access_token" --user-attributes Name="email",Value="example_new_email"
Um exemplo do comando admin-update-user-attributes:
aws cognito-idp admin-update-user-attributes --user-pool-id "example_user_pool_id" --username "example_username" --user-attributes Name="email",Value="example_new_email"
Importante: a API AdminUpdateUserAttributes também pode ser usada para verificar automaticamente o e-mail definindo o atributo email_verified como True. Se o endereço de e-mail for verificado automaticamente com a API AdminUpdateUserAttributes, a próxima etapa não é necessária. A próxima etapa é necessária quando for usada a API UpdateUserAttributes.
3. Verifique o código de verificação em sua nova caixa de entrada de e-mail.
4. Chame a API VerifyUserAttribute. Especifique os parâmetros para AccessToken e AttributeName como “e-mail” e insira o código de verificação da etapa anterior.
Um exemplo do comando verify-user-attribute:
aws cognito-idp verify-user-attribute --access-token "example_access_token" --attribute-name "email" --code "example_verification_code"
Para verificar o endereço de e-mail após a expiração do código inicial:
1. Faça login em seu aplicativo com seu nome de usuário para recuperar o token de acesso.
2. Chame a API GetUserAttributeVerificationCode. Defina o parâmetro AttributeName como “email”.
Um exemplo do comando get-user-attribute-verification-code:
aws cognito-idp get-user-attribute-verification-code --access-token "example_access_token" --attribute-name "email"
3. Chame a API VerifyUserAttribute. Especifique os parâmetros para AccessToken e AttributeName como “e-mail”. Insira o código de verificação da etapa anterior.
Confirmar um novo usuário com um endereço de e-mail duplicado
Para permitir a confirmação de um novo usuário com um endereço de e-mail duplicado:
1. Se necessário, chame a API SignUp para cadastrar um usuário com um endereço de e-mail configurado.
Um exemplo do comando sign-up:
aws cognito-idp sign-up --client-id "example_client_id" --username "example_username" --password "example_password" --user-attributes Name="email",Value="example_user_email"
2. Chame a API ConfirmSignUp com o parâmetro ForceAliasCreation definido como True.
Um exemplo do comando confirm-sign-up:
aws cognito-idp confirm-sign-up --client-id "example_client_id" --username "example_username" --confirmation-code "example_confirmation_code" --force-alias-creation
Para negar a confirmação de um novo usuário com um endereço de e-mail duplicado após o cadastro:
1. Chame a API ConfirmSignUp com o parâmetro ForceAliasCreation definido como False.
Nota: ForceAliasCreation é definido como False por padrão. Portanto, não é necessário que ele seja passado como um parâmetro na solicitação.
Um exemplo do comando deny-sign-up:
aws cognito-idp confirm-sign-up --client-id "example_client_id" --username "example_username" --confirmation-code "example_confirmation_code" --no-force-alias-creation
2. Ao definir o parâmetro ForceAliasCreation como False, a API retorna o seguinte erro:
An error occurred (AliasExistsException) when calling the ConfirmSignUp operation: An account with the email already exists.
Criar um novo usuário com um endereço de e-mail duplicado como administrador
Para criar um novo usuário com um endereço de e-mail duplicado como administrador:
1. Chame a API AdminCreateUser com um endereço de e-mail configurado, com o atributo email_verified definido como True e o parâmetro ForceAliasCreation definido como True.
Um exemplo do comando admin-create-user:
aws cognito-idp admin-create-user --user-pool-id "example_user_pool_id" --username "example_username" --user-attributes Name="email",Value="example_user_email" Name="email_verified",Value="True" --force-alias-creation
Mapear o atributo email_verified para um provedor de identidades (IdP) de terceiros
Para manter o atributo email_verified verificado após a federação:
1. No console do Amazon Cognito, mapeie o atributo IdP para status de verificação para o atributo email_verified.
Nota: A maioria dos provedores do OpenID Connect (OIDC) inclui o atributo email_verified.
Informações relacionadas
Verificar atualizações em endereços de e-mail e números de telefone
Conteúdo relevante
- AWS OFICIALAtualizada há 7 meses
- AWS OFICIALAtualizada há 3 anos
- AWS OFICIALAtualizada há 2 anos