node.js - 如何删除 Node.js 中的 Cognito 用户?

标签 node.js amazon-cognito

如何在 nodejs 中从 * cognito * 中删除用户帐户。

我正在尝试从 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 } 但没用。

任何帮助将不胜感激。

最佳答案

试试这个:

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 中使用的访问 token 应具有所需池的 cognito-idp:AdminDeleteUser 权限。

关于node.js - 如何删除 Node.js 中的 Cognito 用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56020630/

相关文章:

amazon-web-services - 如何通过 aws 中的 cli 为 admin-update-user-attributes 操作传递 json 值?

amazon-web-services - AWS 自定义验证电子邮件模板

javascript - 有没有办法在 AWS Lambda 中获取 Cognito 用户名?

node.js - 如何刷新 Twit 流? (Npm 模块和 Twitter API)

java - 如何使用Socket从 Node 服务器获取数据?

node.js - 服务员不开火场,文件事件

node.js - 在 node.js 中使用 "natural"模块

aws-lambda - 如何获取用户的认知IdentityId

javascript - 如何将ID Token和Access Token作为cookie从AWS传递并检查它们是否过期?

node.js - Puppeteer 启动无故无法正常工作