在确认Cognito用户之前更新用户电话号码

时间:2020-04-23 19:30:37

标签: node.js amazon-web-services aws-lambda amazon-cognito

在更新AWS Cognito服务中的未确认用户时遇到麻烦。流程是这样的:

  1. 用户使用电子邮件,电话和密码登录我的应用程序
  2. AWS Cognito将确认代码发送到用户的手机
  3. 用户意识到他/她在注册时输入的电话号码输入错误,因此选择了更改电话选项
  4. 该应用发送请求以将用户属性更新为cognito,此操作成功后cognito将新的确认代码发送至新用户的手机
  5. 在使用此新代码来确认用户以cognito身份确认时,会返回一条错误消息,提示确认代码无效(已过期),需要重新输入密码。

我知道cognito是一个黑匣子,但是这个新代码怎么可能已经过期?

我正在使用nodejs v12.13.1和aws sdk ^ 2.656.0

这是我的lambda代码

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

    let phone_number = event.body.phone_number, email = event.body.email;

    var params = {
        UserAttributes: [ 
          {
              Name: constants.INPUT_PHONE_NUMBER, 
              Value: phone_number
          },
       ],
       UserPoolId: process.env.USER_POOL,
       Username: email,
   };

   let cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider();
   cognitoidentityserviceprovider.adminUpdateUserAttributes(params, function(err, data) {
        if(err){
           callback(err);
        }else{
           callback(null,"ok");
        }
   });

0 个答案:

没有答案