Wie behebe ich Probleme mit dem email_verified-Attribut eines Amazon-Cognito-Benutzers?

Lesedauer: 5 Minute
0

Ich möchte alle Probleme mit dem email_verified-Attribut für Amazon-Cognito-Benutzer lösen.

Kurzbeschreibung

Ein Amazon-Cognito-Benutzerpool verfügt über eine Reihe von Standardattributen, die zur Identifizierung einzelner Benutzer verwendet werden. Das email_verified-Attribut, welches angibt, ob die E-Mail-Adresse eines Benutzers verifiziert wurde, kann sich in den folgenden Situationen ändern:

  • Ein Benutzer aktualisiert seine E-Mail-Adresse. Wenn ein Benutzer seine E-Mail-Adresse aktualisiert, ändert Amazon Cognito das Attribut email_verified auf nicht verifiziert.
  • Eine E-Mail-Adresse ist als Alias konfiguriert. Dann wird ein Benutzer mit einer doppelten E-Mail-Adresse erstellt. Wenn eine E-Mail-Adresse als Alias festgelegt ist, kann nur ein der Benutzer den E-Mail-Adresswert als email_verified-Attribut verwenden. Wenn die Kontobestätigung des neueren Benutzers erfolgreich ist, wird der E-Mail-Adressenalias an den neueren Benutzer übertragen. Die E-Mail-Adresse des ehemaligen Benutzers ist dann nicht verifiziert. Weitere Informationen finden Sie unter Benutzerpool-Attribute und im Abschnitt Anpassen der Anmeldeattribute.
  • Ein Verbundbenutzer oder ein mit einem Verbundbenutzer verknüpfter Benutzer meldet sich mit einer E-Mail-Zuordnung an. Wenn sich ein Verbundbenutzer anmeldet, muss für jedes Benutzerpoolattribut, das Ihr Benutzerpool benötigt, eine Zuordnung vorhanden sein. Wenn ein E-Mail-Attribut zugeordnet ist, ändert sich das email_verified-Attribut standardmäßig in nicht verifiziert.

Lösung

Um Probleme mit dem Attribut email_verified zu lösen, folgen Sie den für Ihre Situation geltenden Schritten.

Wichtig: Ersetzen Sie in den folgenden Beispielbefehlen für das AWS Command Line Interface (AWS CLI) alle Instances von Beispielzeichenfolgen durch Ihre Werte. (Ersetzen Sie beispielsweise „example_access_token“ durch Ihren Zugriffstokenwert.)

Überprüfung nach einer Aktualisierung der E-Mail-Adresse

Um die E-Mail-Adresse nach einer Benutzeraktualisierung zu überprüfen:

1.    Damit Amazon Cognito den Bestätigungscode an eine aktualisierte E-Mail-Adresse senden kann, konfigurieren Sie die E-Mail-Bestätigungseinstellung für den Benutzerpool.

2.    Aktualisieren Sie gegebenenfalls die E-Mail-Adresse, indem Sie die UpdateUserAttributes-API oder die AdminUpdateUserAttributes-API aufrufen.

Ein Beispiel für den Befehl update-user-attributes:

aws cognito-idp update-user-attributes --access-token "example_access_token" --user-attributes Name="email",Value="example_new_email"

Ein Beispiel für den Befehl 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"

Wichtig: Die AdminUpdateUserAttributes-API kann auch verwendet werden, um die E-Mail automatisch zu verifizieren, indem das Attribut email_verified auf True gesetzt wird. Wenn die E-Mail-Adresse automatisch mit der AdminUpdateUserAttributes-API verifiziert wird, ist der nächste Schritt nicht erforderlich. Der nächste Schritt ist erforderlich, wenn Sie die updateUserAttributes-API verwenden.

3.    In Ihrem neuen E-Mail-Posteingang finden Sie den Bestätigungscode.

4.    Rufen Sie die VerifyUserAttribute-API auf. Geben Sie die Parameter für AccessToken und AttributeName als „email“ an und geben Sie den Bestätigungscode aus dem vorherigen Schritt ein.

Ein Beispiel für den Befehl verify-user-attribute:

aws cognito-idp verify-user-attribute --access-token "example_access_token" --attribute-name "email" --code "example_verification_code"

Um die E-Mail-Adresse zu überprüfen, nachdem der ursprüngliche Code abgelaufen ist:

1.    Melden Sie sich mit Ihrem Benutzernamen bei Ihrer Anwendung an, um Ihr Zugriffstoken abzurufen.

2.    Rufen Sie die GetUserAttributeVerificationCode-API auf. Stellen Sie den AttributeName-Parameter auf „email“ ein.

Ein Beispiel für den Befehl get-user-attribute-verification-code:

aws cognito-idp get-user-attribute-verification-code --access-token "example_access_token" --attribute-name "email"

3.    Rufen Sie die VerifyUserAttribute-API auf. Geben Sie die Parameter für AccessToken und AttributeName als „email“ an. Geben Sie den Bestätigungscode aus dem vorherigen Schritt ein.

Bestätigen Sie einen neuen Benutzer mit einer doppelten E-Mail-Adresse

Um die Bestätigung eines neuen Benutzers mit einer doppelten E-Mail-Adresse zu ermöglichen:

1.    Rufen Sie bei Bedarf die SignUp-API auf, um einen Benutzer mit einer konfigurierten E-Mail-Adresse zu registrieren.

Ein Beispiel für einen sign-up Befehl:

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.    Rufen Sie die ConfirmSignup-API auf, wobei der Parameter forceAliasCreation auf True gesetzt ist.

Ein Beispiel für einen confirm-sign-up-Befehl :

aws cognito-idp confirm-sign-up --client-id "example_client_id" --username "example_username" --confirmation-code "example_confirmation_code" --force-alias-creation

Um die Bestätigung eines neuen Benutzers mit einer doppelten E-Mail-Adresse nach der Registrierung zu verweigern:

1.    Rufen Sie die ConfirmSignup-API auf, wobei der Parameter forceAliasCreation auf False gesetzt ist.

Hinweis: ForceAliasCreation ist standardmäßig auf False gesetzt. Daher muss es nicht als Parameter in der Anfrage übergeben werden.

Ein Beispiel für einen deny-sign-up-Befehl:

aws cognito-idp confirm-sign-up --client-id "example_client_id" --username "example_username" --confirmation-code "example_confirmation_code" --no-force-alias-creation

2.    Wenn der Parameter ForceAliasCreation auf False gesetzt wird, gibt die API den folgenden Fehler zurück:

An error occurred (AliasExistsException) when calling the ConfirmSignUp operation: An account with the email already exists.

Erstellen Sie einen neuen Benutzer mit einer doppelten E-Mail-Adresse als Administrator

Um als Administrator einen neuen Benutzer mit einer doppelten E-Mail-Adresse zu erstellen:

1.    Rufen Sie die AdminCreateUser-API mit einer konfigurierten E-Mail-Adresse auf, wobei das Attribut email_verified auf True und der ForceAliasCreation-Parameter auf True gesetzt ist.

Ein Beispiel für den Befehl 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

Ordnen Sie das email_verified-Attribut einem externen Identitätsanbieter (IdP) zu

Gehen Sie wie folgt vor, um das email_verified-API nach dem Verbund zu verifizieren:

1.    Ordnen Sie in der Amazon-Cognito-Konsole das IdP-Attribut für den Bestätigungsstatus dem Attribut email_verified zu.

Hinweis: Die meisten OpenID Connect (OIDC)-Anbieter enthalten das Attribut email_verified.


Ähnliche Informationen

Überprüfung von Aktualisierungen von E-Mail-Adressen und Telefonnummern

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr