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 withpermanent:true
调用adminConfirmSignUp之前…adminSetUserPassword
withpermanent:true
将用户状态设置为confirmSignup
,这会导致adminConfirmSignUp
抛出NotAuthorizedException
,并显示用户无法执行的消息请确认。当前状态已确认
设置永久:false
设置密码时,用户状态设置为强制更改密码`这会导致adminConfirmSignUp
引发另一个NotAuthorizedException
,并显示消息无法确认用户。当前状态为强制更改密码
adminConfirmSignUp命令期望用户处于什么状态?因此adminSetUserPassword
withpermanent:true
将用户状态设置为已确认?因此,如果使用永久密码进行确认,那么显然在此之后您不需要使用adminConfirmSignUp
?