AWS Cognito SignUP 在节点 js 中使用自定义属性导致错误

AWS Cognito SignUP with custom Attributes in node js causing error

我正在尝试使用 AWS 用户池通过 lambda 函数构建注册,我在其中添加了一个名为 type 的自定义属性。 当我通过注册发送类型值时,出现错误“客户端试图写入未经授权的属性”。

我正在使用 'amazon-cognito-identity-js' 包来保存数据。 这是我的代码片段


        const attributeList = [];
        attributeList.push(new AmazonCognitoIdentity.CognitoUserAttribute({Name:"name",Value:user.username}));
        attributeList.push(new AmazonCognitoIdentity.CognitoUserAttribute({Name:"custom:type",Value:'asd'}));
        attributeList.push(new AmazonCognitoIdentity.CognitoUserAttribute({Name:"gender",Value:user.gender}));
        attributeList.push(new AmazonCognitoIdentity.CognitoUserAttribute({Name:"email",Value:user.email}));

        userPool.signUp(user.email, user.password, attributeList, null, function(err, result){
            if (err) {
                return reject(err);
            }
           return resolve(result);
        });**strong text**

添加新属性后,您应该select此应用程序客户端可以读取和写入的用户属性。

步骤:

  1. 转到您的 Cognito 用户池页面
  2. 点击左侧菜单中的“App Client”
  3. 点击“设置属性读写权限”
  4. 确保您为所需属性添加了必要的(read/write)权限

除了上面的回答,有时自定义属性可能需要时间才能反映在客户端下。因为我在 15 分钟左右注意到它,但 1 小时后它就在那里了。