Amazon web services 无法通过AWS SDK确认用户注册

Amazon web services 无法通过AWS SDK确认用户注册,amazon-web-services,aws-sdk,amazon-cognito,amazon-iam,Amazon Web Services,Aws Sdk,Amazon Cognito,Amazon Iam,JS SDK的AWS文档说明: 强制更改密码 用户帐户已确认,用户可以使用临时密码登录,但在首次登录时,用户必须先将其密码更改为新值,然后再执行其他操作 管理员或开发人员创建的用户帐户在此状态下启动 但是如果对于这样的用户,我尝试调用SDK的forgotPassword方法,它会错误地说:密码不能在当前状态下重置 那么,如何从我的网站完成用户注册(由IAM中的管理员创建)。应该调用哪种SDK方法?在预注册触发器上设置自动验证Lambda触发器将允许用户处于已确认状态,这可能会使您到达您要查找的点

JS SDK的AWS文档说明:

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

管理员或开发人员创建的用户帐户在此状态下启动

但是如果对于这样的用户,我尝试调用SDK的
forgotPassword
方法,它会错误地说:
密码不能在当前状态下重置


那么,如何从我的网站完成用户注册(由IAM中的管理员创建)。应该调用哪种SDK方法?

在预注册触发器上设置自动验证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关于aws cogniton迁移的问题
  • 一步一步地进行。我解释说,管理员创建的用户需要更改密码(忘记密码),但还有另一种方法。看看我的答案
我的回答中的一些内容,

AdminCreateUser:

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

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

  • 指定邀请消息是通过SMS、电子邮件还是同时通过两者发送

成功创建用户后

  • 使用相同的用户凭据对用户进行身份验证使用:SDK调用InitiateAuth(用户名,user\u SRP\u AUTH)

  • initateAuth成功后,AmazonCognito返回带有Salt&Secret块的密码验证挑战

  • 使用RespondToAuthChallenge(用户名、密码\u验证器)

  • AmazonCognito返回新的\u密码\u所需挑战以及当前和所需的属性

  • 系统将提示用户输入新密码以及所需属性的任何缺失值

  • 调用RespondToAuthChallenge(用户名,)

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


请参阅:

change\u password(**kwargs)更改调用此操作的IAM用户的密码。AWS帐户根用户密码不受此操作的影响。要更改其他用户的密码,请参阅UpdateLoginProfile。有关修改密码的更多信息,请参阅IAM用户指南中的管理密码。
来自AWS文档:change_password方法显然只适用于经过身份验证的用户,而不是第一次使用的用户。啊,是的……我已经通过了此线程。这是否意味着,没有cli就无法批准用户注册。如果管理员创建了一个用户,他只能确认该用户。看起来很奇怪。是吗?是的,看起来是这样。至少没有直接的方法来验证用户。尽管我可以看到向aws提出的功能要求。我会尝试获取更多信息。