javascript - ResourceNotFoundException: 用户池 xyz 不存在 - Cognito adminConfirmSignup
出于某种原因,只有 adminConfirmSignup 会给出用户池不存在的错误。CognitoUser 不会出现该错误。请参考下面的代码:
let cognitoUser = new AmazonCognitoIdentity.CognitoUser(userData)
var cognitoAdmin = new AWS.CognitoIdentityServiceProvider({ region: process.env.COGNITO_POOL_REGION! });
await cognitoAdmin.adminConfirmSignUp(confirmParams, async(err, data) => { //Only this gives the user pool does not exist error
if (err) {
console.log(`This is the admin user confirm error ---> ${err}`)
} else {
console.log(`Entered else`);
await cognitoUser.authenticateUser(authenticationDetails, {
onSuccess: async(result) => {
cognitoUser.changePassword(resetDetails.currentPassword, resetDetails.newPassword, (err, data) => {
if (err) {
reject(err);
} else {
console.log(`This is the success response of cognito change password -----> ${JSON.stringify(data)}`);
resolve(data);
}
})
},
onFailure: (error) => {
console.log(`This is the onFailure error ----> ${JSON.stringify(error)}`);
reject(error);
}
})
}
})如果我使用 CognitoUser 方法(当我手动确认用户并且仅使用 cognitoUser 方法进行身份验证和重置密码时),密码重置是有效的。
答案#1
您在 SDK 调用中的参数 UserPoolId 不正确。仅凭您发布的内容无法看到这一点。
答案#2
在调用那个函数前需要另一个 await
await cognitoUser.changePassword(...)
像这样
