Cognito 中 adminConfirmSignUp 命令的用途是什么

alp*_*ric 6 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 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();
Run Code Online (Sandbox Code Playgroud)

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

 NotAuthorizedException: User cannot be confirmed. Current status is FORCE_CHANGE_PASSWORD
Run Code Online (Sandbox Code Playgroud)

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

Gir*_*ora -1

当用户自己注册并且管理员想要确认用户注册时,您可以调用 AdminConfirmSignUp。流程将是:

  1. 用户通过调用SignUp API进行注册
  2. 管理员想要确认用户注册而不进行验证,因此管理员调用 AdminConfirmSignUP。

如果您在用户处于“强制更改密码”或“需要重置”状态时尝试调用 AdminConfirmSignUp,则 API AdminConfirmSignUp。这是因为用户很可能会通过管理员启动的操作强制更改密码或重置(即隐式确认用户的注册)