如何从nodejs中的* ognito *中删除用户帐户。
我正在尝试从 cognito 中删除该用户,但该用户不适合我。
AWS配置
const AWS = require('aws-sdk');
const cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider();
池配置
const poolConfig = {
UserPoolId: keys.cognito.userPoolId,
ClientId: keys.cognito.clientId
};
上面的配置位于下面的删除功能之上。
删除功能
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,
});
}
});
}
我也尝试过删除用户
const userDetails = { Username: decodedEmailId, Pool: userPool }
,但没有用。
任何帮助将不胜感激。
答案 0 :(得分:1)
尝试一下:
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();
请注意,您在sdk中使用的访问令牌应具有对所需池的cognito-idp:AdminDeleteUser
权限。