首页 > 解决方案 > Cognito 中 adminConfirmSignUp 命令的目的是什么

问题描述

我正在创建并确认用户

let AWS = require("aws-sdk");

let AWS_REGION = 'us-east-1';
let AWS_COGNITO_USER_POOL_ID = "My-Cognito-User-Pool-ID"
let EMAIL = "user-01@google.com";
let PASSWORD = 'Cognito1234!';

const cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider({  
  apiVersion: "2016-04-19",
  region: AWS_REGION
});

async function createUser() {
  
  let userData = {
    UserPoolId: AWS_COGNITO_USER_POOL_ID,
    Username: EMAIL,
    DesiredDeliveryMediums: ["EMAIL"],
    TemporaryPassword: PASSWORD,
    UserAttributes: [
      {
      Name: "email",
      Value: EMAIL
      },
      {
      Name: "email_verified",
      Value: "true"
      }
    ]
  };

  console.log("....userData:", userData);  

  let data = await cognitoidentityserviceprovider.adminCreateUser(userData).promise();
  console.log("....data:", data);

  let confirmParams = {
    UserPoolId: AWS_COGNITO_USER_POOL_ID, 
    Username: data.User.Username, 
    ClientMetadata: {
      'SOME_KEY': 'SOME_VALUE'
    }
  };
  let result = await cognitoidentityserviceprovider.adminConfirmSignUp(confirmParams).promise();
  console.log("....ConfirmUser:", ConfirmUser);
  return data;
}

createUser();

用户是使用第一个命令创建的adminCreateUser。但是当我尝试使用adminConfirmSignUp带有错误的命令时它失败了:

 NotAuthorizedException: User cannot be confirmed. Current status is FORCE_CHANGE_PASSWORD

adminConfirmSignUp确认命令的目的是什么?adminConfirmSignUp在使用命令之前,我应该将用户的状态从 FORCE_CHANGE_PASSWORD 更改为其他内容吗?

标签: javascriptnode.jstypescriptamazon-cognito

解决方案


推荐阅读