无法通过AWS开发工具包确认用户注册

用于JS SDK的AWS文档说:

  

强制更改密码   用户帐户已确认,并且用户可以使用临时密码登录,但是在首次登录时,用户必须先将其密码更改为新值,然后再执行其他操作。

由管理员或开发人员创建的用户帐户以这种状态启动。

但是如果对于这样的用户,我尝试调用SDK的forgotPassword方法,则会出现类似Password cannot be reset in the current state这样的错误消息。

因此,我如何从我的网站完成用户的注册(由IAM中的admin创建)。应该调用哪个SDK方法?

a198911 回答:无法通过AWS开发工具包确认用户注册

在预注册触发器上设置自动验证Lambda触发器将使用户处于已确认状态,这可能使您到达要寻找的位置?

Lambda-> Node.js

给它一个合适的标题

将以下值放在代码中:

exports.handler = (event,context,callback) => {

    // Confirm the user
    event.response.autoConfirmUser = true;

    // Set the email as verified if it is in the request
    if (event.request.userAttributes.hasOwnProperty("email")) {
        event.response.autoVerifyEmail = true;
    }

    // Return to Amazon Cognito
    callback(null,event);
};

保存

然后在“常规设置”->“触发器”->“预注册”中选择新创建的触发器

,

我们可以做到

  • 我以前曾对mongodb回答过aaw认知迁移问题。
  • 逐步进行操作。我解释说,由admin创建的用户需要更改密码(忘记密码),但是还有另一种方法。查看我的答案,

我的答案中的一些内容

AdminCreateUser:

  • 使用AWS管理控制台或调用AdminCreateUser API创建新的用户配置文件。指定临时密码或允许Amazon Cognito自动生成一个。

  • 指定是否将提供的电子邮件地址和电话号码标记为已为新用户验证。通过AWS管理控制台为新用户指定自定义SMS和电子邮件邀请消息。

  • 指定邀请消息是通过短信,电子邮件还是通过两者发送。

成功创建用户后,

  • 使用相同的用户凭据对用户进行身份验证使用:SDK调用InitiateAuth(Username,USER_SRP_AUTH)

  • 在成功执行initateAuth之后,亚马逊Cognito返回带有Salt&Secret块的PASSWORD_VERIFIER挑战。

  • 使用RespondToAuthChallenge(Username,,PASSWORD_VERIFIER)

  • Amazon Cognito返回NEW_PASSWORD_REQUIRED挑战以及当前和必需的属性。

  • 系统会提示用户,并输入新密码和所需属性的所有缺失值。

  • 致电RespondToAuthChallenge(Username,,)。

  • 成功更改密码后,用户可以使用管理员创建的相同凭据登录。

引用:Unable to confirm the user registration via aws

本文链接:https://www.f2er.com/3138412.html

大家都在问