cognito pool - 未能注册用户

时间:2017-05-12 21:09:30

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

我正在尝试基于cognito用户池构建用户管理。 我使用nodesjs + express作为后端,所有对cognito的操作都将从nodejs完成。

我的注册路线是

app.post('/signup', (req, res) => {
let userName = req.body.userName;
let email = req.body.email;
let familyName = req.body.familyName;
let password = req.body.password;

let attributeList = [];

let dataEmail = {
    Name: 'email',
    Value: email
};

let name = {
    Name: 'name',
    Value: userName
};

let familyname = {
    Name: 'family_name',
    Value: familyName
};

let attributeEmail = new AmazonCognitoIdentity.CognitoUserAttribute(dataEmail);
let attributeName = new AmazonCognitoIdentity.CognitoUserAttribute(name);
let attributeFamilyName = new AmazonCognitoIdentity.CognitoUserAttribute(familyname);

attributeList.push(attributeEmail);
attributeList.push(attributeName);
attributeList.push(familyname);

let userPool = new CognitoUserPool(poolData);
userPool.signUp(email, password, attributeList, null, (err, result) => {
    if (err) {
        console.log(`got error during signup ${err}`);
        res.sendStatus(500);
    } else {
        let cognitoUser = result.user;
        console.log('user name is ' + cognitoUser.getUsername());
        res.sendStatus(200);
    }

   });

});
然而,我失败了,无法找到如何过来 错误参数:

在注册期间出错MissingRequiredParameter:在params中缺少必需的键'Username'

1 个答案:

答案 0 :(得分:0)

A'用户名'注册用户始终需要属性。因此,您需要在属性列表中添加一个。

如果您没有要求用户输入用户名或者不需要用户名,则可以使用您使用的任何值来唯一标识用户。这是一种处理它的简单方法。

例如,除了将电子邮件地址添加到电子邮件地址属性之外,还要将其作为用户名属性提交。

参考: http://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html