Direkt zum Inhalt

Warum sendet Amazon Cognito den Verifizierungscode nicht per E-Mail oder SMS-Textnachricht mit dem ForgotPassword-API-Aufruf?

Lesedauer: 5 Minute
0

Ich möchte wissen, warum Amazon Cognito keine E-Mail oder Short Message Service (SMS)-Textnachricht mit dem Verifizierungscode gesendet hat, wenn ich den ForgotPassword-API-Aufruf verwende.

Behebung

Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.

Spam- und Junk-Ordner überprüfen

Stelle sicher, dass die Verifizierungs-E-Mail nicht in den Spam- oder Junk-Ordnern des Benutzers landet.

Bestätigen, dass der/die Benutzer:in im Benutzerpool existiert

Vergewissere dich, dass der/die Benutzer:in im Amazon-Cognito-Benutzerpool existiert. Informationen zur Verwendung der Amazon-Cognito-Konsole für die Suche nach Benutzern im Benutzerpool findest du unter Benutzerkonten verwalten und suchen. Du kannst auch den AdminGetUser-API-Aufruf verwenden.

Benutzerstatus überprüfen

Stelle sicher, dass der Status von Benutzern nicht FORCE_CHANGE_PASSWORD lautet.

Bis sich Benutzer, die Administratoren erstellen, mit dem angegebenen Passwort anmelden, lautet der Benutzerstatus standardmäßig FORCE_CHANGE_PASSWORD.

Wenn der Benutzerstatus FORCE_CHANGE_PASSWORD lautet, können Benutzer den ForgotPassword-API-Aufruf nicht verwenden und erhalten den Verifizierungscode nicht. Stattdessen fordert Amazon Cognito Benutzer auf, ihr Passwort zu ändern.

Das AWS-Konto von Benutzern wiederherstellen

Wenn du die API „Passwort vergessen“ aufrufst, obwohl dein Benutzername und deine Telefonnummer nicht verifiziert wurden, erhältst du eine der folgenden Fehlermeldungen:

  • In der 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“
  • In der Amazon-Cognito-Konsole:
    „Could not reset password for the account, please contact support or try again.“

Um das Benutzerkonto wiederherzustellen, musst du die Konfiguration des Benutzerkontos verifizieren. Prüfe, ob die Übermittlungsmethode für Wiederherstellungsnachrichten „E-Mail“, „Telefon“, „Nur E-Mail“, „Nur Telefon“, „Telefon, falls verfügbar“ oder „keine“ ist.

Führe die folgenden Schritte aus:

  1. Öffne die Amazon-Cognito-Konsole.
  2. Wähle den Benutzerpool aus.
  3. Wähle unter Authentifizierung die Option Anmelden aus.
  4. Überprüfe im Abschnitt Wiederherstellung des Benutzerkontos die Optionen unter Übermittlungsmethode für die Wiederherstellungsnachricht. Vergewissere dich dann, dass die Übermittlungsmethode ein verifiziertes Attribut für den/die Benutzer:in ist.
  5. Vergewissere dich, dass die Übermittlungsmethode ein verifiziertes Attribut für den/die Benutzer:in ist.

Benutzer mit dem Status BESTÄTIGT haben möglicherweise keine verifizierte E-Mail-Adresse oder Telefonnummer für die Passwortwiederherstellung. Wenn du das Kontrollkästchen „Verifizierung“ aktivierst, um Konten zu erstellen, musst du die E-Mail-Adresse und Telefonnummer der Benutzerkonten überprüfen, die ein/e Administrator:in erstellt hat.

Verwende eine der folgenden Methoden, um den verifizierten Status deiner E-Mail-Adresse und Telefonnummer auf true (wahr) zu setzen, um dieses Problem zu beheben:

Die Benutzerattribute aktualisieren

Wenn du Administrator:in bist, führe den folgenden AdminUpdateUserAttributes-API-Aufruf aus:

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

Hinweis: Ersetze example-verification-method durch email_verified oder phone_number_verified, je nach Übermittlungsmethode der Wiederherstellungsnachricht des Benutzers. Ersetze example-userpoolID durch die ID deines Benutzerpools und example-user-name durch den Namen des Benutzers, der den API-Aufruf „Passwort vergessen“ ausführen möchte.

Wenn du ein/e Benutzer:in bist, melde dich an und führe dann den folgenden UpdateUserAttributes-API-Aufruf aus:

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

Hinweis: Ersetze example-verification-method durch email_verified oder phone_number_verified, je nach Übermittlungsmethode der Wiederherstellungsnachricht des Benutzers. Ersetze example-access-token durch den Wert des Zugriffstokens.

Lambda-Auslöser vor der Anmeldung
Verwende Lambda-Auslöser vor der Anmeldung, um die E-Mail- und Telefonnummer-Attribute von Benutzern auf „verifiziert“ zu setzen.

SignUp
Wenn du ein/e Benutzer:in bist, führe die folgenden Schritte aus:

  1. Führe den folgenden SignUP-API-Aufruf aus:
    aws cognito-idp sign-up --client-id example-client-ID --username example-user-name
    Hinweis: Ersetze example-client-ID durch die ID des App-Clients, bei dem du dich anmelden möchtest. Ersetze example-user-name durch deinen Benutzernamen.
  2. Notiere dir den Wert von Session (Sitzung) in der Ausgabe des vorherigen Befehls.
  3. Führe den folgenden ConfirmSignUp-API-Aufruf aus:
    aws cognito-idp confirm-sign-up --client-id example-client-ID --username example-user-name --confirmation-code example-confirmation-code
    Hinweis: Ersetze example-client-ID durch die ID des App-Clients, bei dem du dich registrieren möchtest. Ersetze example-user-name durch deinen Benutzernamen. Ersetze example-confirmation-code durch den Wert von Session (Sitzung), den du in Schritt 2 notiert hast.

Wenn du Administrator:in bist, führe den folgenden AdminConfirmSignUp-API-Aufruf aus:

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

Hinweis: Ersetze example-client-ID durch die ID des App-Clients. Ersetze example-user-name durch den Benutzernamen.

Das Ausgabenlimit des Kontos für SMS-Nachrichten überprüfen

Amazon Cognito verwendet Amazon Simple Notification Service (Amazon SNS), um SMS-Textnachrichten zu übermitteln. Wenn das von dir festgelegte Kontingent für Kontoausgaben das Kontoausgabenlimit überschreitet, veröffentlicht Amazon SNS keine SMS-Nachrichten.

Informationen zum Überprüfen oder Ändern des Limits für Kontoausgaben findest du unter Einstellungen für SMS-Nachrichten mithilfe der AWS-Managementkonsole festlegen.

Amazon-SES-Kontingent überprüfen

Amazon Cognito verwendet Amazon Simple Email Service (Amazon SES), um E-Mails zu übermitteln. Standardmäßig erlaubt Amazon Cognito eine begrenzte Anzahl von täglichen E-Mails für deinen Benutzerpool. Weitere Informationen findest du unter Kontingente für Ressourcenanzahl und -größe.

Um eine höhere E-Mail-Übermittlung festzulegen, kannst du den Benutzerpool so konfigurieren, dass er deine Amazon-SES-E-Mail-Konfiguration verwendet. Eine Anleitung findest du unter E-Mail-Einstellungen für Amazon-Cognito-Benutzerpools.

Den AdminSetUserPassword-API-Aufruf zum Zurücksetzen des Benutzerpassworts verwenden

Administratoren können den AdminSetUserPassword-API-Aufruf verwenden, um das Passwort von Benutzern in einem Amazon-Cognito-Benutzerpool als temporär oder permanent festzulegen. Benutzer mit temporären Passwörtern müssen sich anmelden und das temporäre Passwort ändern, bevor es ausläuft. Nachdem ein Benutzer das temporäre Passwort zurückgesetzt hat oder das Passwort als permanent festgelegt ist, ändert sich der Status zu BESTÄTIGT.

Ähnliche Informationen

Gründe für Fehlschläge bei der SMS-Zustellung

admin-get-user

AdminResetUserPassword

AWS OFFICIALAktualisiert vor einem Jahr