使用Amazon Cognito将用户添加到用户池

时间:2019-04-11 22:42:59

标签: node.js amazon-web-services amazon-cognito

我正在尝试了解Amazon Cognito的工作原理,但是文档如此模糊。我发现有几种API似乎做类似的事情,其中​​两种来自Amazon,第三种在Git Hub上似乎很流行。这最后一个似乎也是为浏览器编写的,虽然它确实起作用,但它需要polyfills,这增加了我想避免的复杂性。

我要使用的是https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CognitoIdentity.html 但这似乎是所有用户中最不友好的。有足够的文档,但这不是很好。

听起来像您使用函数getId()创建用户,但是有些引用像“帐户ID”这样的参数只是没有意义。

此API实际上需要哪些功能来将用户添加到我的用户池?我什至应该使用这个API?

2 个答案:

答案 0 :(得分:0)

在CognitoIdentiyServiceProvider https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CognitoIdentityServiceProvider.html中使用adminCreateUser方法

请注意,我来自C ++,但这在Javascript中看起来是一样的。

答案 1 :(得分:0)

如果您希望在Web应用程序客户端上使用它,可以考虑使用amazon-cognito-identity-js代替here.

下面signUp的示例用法:

 const AmazonCognitoIdentity = require('amazon-cognito-identity-js')
 
 var poolData = {
        UserPoolId : '...', // Your user pool id here
        ClientId : '...' // Your client id here
    };
    var userPool = new AmazonCognitoIdentity.CognitoUserPool(poolData);

    var attributeList = [];

    var dataEmail = {
        Name : 'email',
        Value : 'email@mydomain.com'
    };

    var dataPhoneNumber = {
        Name : 'phone_number',
        Value : '+15555555555'
    };
    var attributeEmail = new AmazonCognitoIdentity.CognitoUserAttribute(dataEmail);
    var attributePhoneNumber = new AmazonCognitoIdentity.CognitoUserAttribute(dataPhoneNumber);

    attributeList.push(attributeEmail);
    attributeList.push(attributePhoneNumber);

    userPool.signUp('username', 'password', attributeList, null, function(err, result){
        if (err) {
            alert(err.message || JSON.stringify(err));
            return;
        }
        var cognitoUser = result.user;
        console.log('user name is ' + cognitoUser.getUsername());
    });