我需要使用忘記密碼流程來幫助使用者在 Amazon Cognito 中變更密碼。
Amazon Cognito 使用者可以叫用 ForgotPassword API 來啟動忘記密碼流程,以重設其使用者密碼。
請依照下列步驟設定忘記密碼流程,以在 Amazon Cognito 中變更使用者的密碼:
1. 叫用 ForgotPassword API,將訊息傳送給使用者,其中包含重設使用者密碼所需的確認碼。
**重要事項:在範例 AWS Command Line Interface (AWS CLI) 命令中,用您的值取代範例字串的所有執行個體。(例如,將「example_client_id」**替換為您的用戶端 ID。)
範例 forgot-password命令:
aws cognito-idp forgot-password --client-id example_client_id --username example_user_name
輸出:
{ "CodeDeliveryDetails": { "Destination": "t***@g***", "DeliveryMedium": "EMAIL", "AttributeName": "email" } }
確認碼訊息會傳送至使用者的已驗證電子郵件地址或已驗證的電話號碼。您可以在 AccountRecoverySetting 參數中自訂復原方法。範例中的確認碼訊息會傳送至使用者的已驗證電子郵件地址。您的組態取決於您的使用案例。
**注意:**如果使用者既沒有已驗證的電話號碼,也沒有已驗證的電子郵件地址,則會擲回 InvalidParameterException 錯誤。若要深入了解如何設定電子郵件地址和電話號碼驗證,請參閱設定電子郵件或電話驗證。
2. 叫用 ConfirmForgotPassword API,讓使用者可以輸入確認代碼以重設密碼。
範例 confirm-forgot-password 命令:
aws cognito-idp confirm-forgot-password --client-id example_client_id --username=user@example.com --password example_password --confirmation-code example_confirmation_code
3. 如有必要,請將 PreventUserExistenceErrors 設定為 Enabled (已啟用),以自訂密碼復原錯誤回應。若要進一步了解,請參閱管理錯誤回應。
4. 如果您的應用程式用戶端在使用者集區中設定了用戶端密碼,則必須提供密碼雜湊。若要進一步了解,請參閱如何對 Amazon Cognito 使用者集區 API 的 "Unable to verify secret hash for client <client-id>"(無法驗證用戶端 <client-id> 的機密雜湊)錯誤進行疑難排解?