Wie behebe ich Probleme mit dem email_verified-Attribut eines Amazon-Cognito-Benutzers?
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
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor 2 Jahren