How to delete user account from * cognito * in nodejs.
I'm trying to delete the user from cognito it is not working for me.
AWS config
const AWS = require('aws-sdk');
const cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider();
Pool config
const poolConfig = {
UserPoolId: keys.cognito.userPoolId,
ClientId: keys.cognito.clientId
};
Above configurations comes on top of below delete function.
Delete Function
function deleteUserFunc(req, decodedToken) {
return new Promise((resolve, reject) => {
const decodedEmailid = decodedToken.email;
const decodedSub = decodedToken.sub;
try {
const userDetails = { Username: decodedSub, Pool: userPool };
console.log('DEBUG : ' + JSON.stringify(userDetails));
const cognitoUser = new AmazonCognitoIdentity.CognitoUser(userDetails);
// Attempting to delete the user
cognitoidentityserviceprovider.adminDeleteUser({
UserPoolId: keys.cognito.userPoolId,
Username: decodedEmailid
}, (err, data)=>
if(err) {
return reject({
error: err.message
});
} else {
return resolve({
error: null
});
}
}).promise().catch(err=>{
return reject({
error: err.message
});
});
console.log('User deleteion status : ' + result);
return resolve({
error: null,
});
});
} catch (err) {
return reject({
error: err,
});
}
});
}
I have also tried to delete the user with
const userDetails = { Username: decodedEmailId, Pool: userPool }
but no use.
Any help will much appreciated.
Try this:
const AWS = require('aws-sdk');
AWS.config.update({
accessKeyId: 'access key id',
secretAccessKey: 'secret access key',
region: 'region',
});
const cognito = new AWS.CognitoIdentityServiceProvider();
await cognito.adminDeleteUser({
UserPoolId: 'pool id',
Username: 'username',
}).promise();
Note that the access token you're using within sdk should have cognito-idp:AdminDeleteUser
permission on required pool.