Javascript Cognito中adminConfirmSignUp命令的用途是什么

Javascript Cognito中adminConfirmSignUp命令的用途是什么,javascript,node.js,typescript,amazon-cognito,Javascript,Node.js,Typescript,Amazon Cognito,我正在使用创建和确认用户 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 cognitoidentityse

我正在使用创建和确认用户

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
fine。但当我尝试使用
adminConfirmSignUp
命令时失败,错误如下:

 NotAuthorizedException: User cannot be confirmed. Current status is FORCE_CHANGE_PASSWORD

adminConfirmSignUp
confirm命令的用途是什么?在使用
adminConfirmSignUp
命令之前,我是否应该将用户的状态从FORCE\u change\u PASSWORD更改为其他状态?

只有拥有永久密码,才能确认用户,并且
adminCreateUser
不能用于创建具有永久密码的用户……我认为您需要设置永久密码使用adminSetUserPassword with
permanent:true
调用adminConfirmSignUp之前…
adminSetUserPassword
with
permanent:true
将用户状态设置为
confirmSignup
,这会导致
adminConfirmSignUp
抛出
NotAuthorizedException
,并显示
用户无法执行的消息请确认。当前状态已确认
设置
永久:false
设置密码时,用户状态设置为强制更改密码`这会导致
adminConfirmSignUp
引发另一个
NotAuthorizedException
,并显示消息
无法确认用户。当前状态为强制更改密码
adminConfirmSignUp命令期望用户处于什么状态?因此
adminSetUserPassword
with
permanent:true
将用户状态设置为已确认?因此,如果使用永久密码进行确认,那么显然在此之后您不需要使用
adminConfirmSignUp