未创建AWS Cognito自定义属性

时间:2017-04-12 20:16:37

标签: javascript amazon-web-services amazon-cognito

我正在尝试使用AWS Cognito SDK设置Cognito用户,但在向用户添加自定义属性时遇到问题。我确保变量名称完全匹配,并且应用程序允许对所有属性进行读/写。我的代码如下所示:

var attributeList = [];

var dataName = {
    Name: 'name',
    Value: name
};
var dataPhoneNumber = {
    Name: 'phone_number',
    Value: phone
};
var dataIsDriver = {
    Name: 'custom:is_driver',
    Value: 0
};

var attributeName = new AWSCognito.CognitoIdentityServiceProvider.CognitoUserAttribute(dataName);
var attributePhoneNumber = new AWSCognito.CognitoIdentityServiceProvider.CognitoUserAttribute(dataPhoneNumber);
var attributeIsDriver = new AWSCognito.CognitoIdentityServiceProvider.CognitoUserAttribute(dataIsDriver);


attributeList.push(attributeName);
attributeList.push(attributePhoneNumber);
attributeList.push(attributeIsDriver);

var username = generateUUID();
localStorage.setItem("username", username);

var userPool = getUserPool();
userPool.signUp(username, password, attributeList, null, function (err, result) {
    if (err) {
        alert(err);
        return;
    }
}

使用此代码,正确设置了name和phone_number属性,但没有“is_driver”。我试图使用adminGetUser获取所有用户的属性,但仍然没有出现is_driver。任何指导将不胜感激!

1 个答案:

答案 0 :(得分:1)

我认为可能会发生这种情况,因为您将属性值作为数字传递给0。这只是服务的特殊性,属性被视为字符串进行验证。

您可以尝试使用下面的代码替换它,看看它是否有效。

var dataIsDriver = {
    Name: 'custom:is_driver',
    Value: '0'
};