我需要在 Amazon Cognito 中使用忘记密码流程帮助用户更改密码。
Amazon Cognito 用户可以调用 ForgotPassword API 来启动忘记密码流程,重置他们的用户密码。
在 Amazon Cognito 中按照以下步骤设置忘记密码流程,更改用户的密码:
1. 调用 ForgotPassword API 向用户发送一条消息,其中包含重置用户密码所需的确认码。
**重要提示:在 AWS 命令行界面(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 中的“无法验证客户端 <client-id> 的密钥哈希”错误?