使用户能够在Cognito中重置过期的临时密码

3
我知道管理员可以使用以下命令从控制台重置用户的临时密码:

aws cognito-idp admin-create-user --region us-east-1 --user-pool-id us-east-1_youruserpoolid --username theusername --message-action RESEND

在这里,我需要一些用户触发选项,触发后他应该会收到新的临时密码邮件。这类似于自助选项,用户无需为重置临时密码而调用管理员。

我尝试使用resendConfirmationCode来实现。

https://github.com/aws-amplify/amplify-js/blob/master/packages/amazon-cognito-identity-js/src/CognitoUser.js

使用 request:

{ClientId: "v3miuf2k********", Username: "suni*********"}

得到的响应为:

{code: "NotAuthorizedException", name: "NotAuthorizedException", message:  "Can't resend confirmation code for this user"}

代码:"NotAuthorizedException"
信息:"无法为此用户重新发送确认代码"
名称:"NotAuthorizedException"

1个回答

0

我想发布来自 AWS 支持团队的官方回应,如果以后有人需要答案。

  1. 我看到这个错误是由 API resendConfirmationCode 引起的,该 API 应该在没有任何凭据的情况下调用,然而,错误提示消息显示 "NotAuthorizedException"。您是否多次调用了此 API?这可能会触发 AWS 后端对匿名攻击的保护机制。

  2. 您可以尝试使用相同的电子邮件地址创建新用户,并使用相同的 API 发送确认代码吗?如果存在一个具有相同电子邮件地址但未经确认的现有用户,则可以使用相同的电子邮件地址创建新用户。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接