const userData = { Username: username, Pool: userPool };
const cognitoUser = new AWS.CognitoIdentityServiceProvider.CognitoUser(userData);
cognitoUser.getUserAttributes(function(err, result) {
if (err) {
alert(err);
return;
}
console.log(result)
for (i = 0; i < result.length; i++) {
console.log('attribute ' + result[i].getName() + ' has value ' + result[i].getValue());
}
});
我有一个自定义字段userType。我已经为自定义属性设置了读写权限。但是在getUserAttributes的响应中,我仅获得标准属性(sub,email_verified,email)。如何检索标准属性和自定义属性?
这是我的回应
最佳答案
首先,您需要确保App客户端具有读取属性的权限。
转到AWS Cognito,选择用户池,然后选择常规设置> App客户端,然后选择App Client,然后单击“设置属性读取和写入权限”
您应该看到以下options(注意,我已创建“custom:premium”属性,并具有读取权限集)
然后,为了查看cognitoUser.getUserAttributes()结果中的自定义属性,您需要为其设置一些值,例如,可以使用以下命令通过AWS CLI完成此操作:
aws cognito-idp admin-update-user-attributes \
--user-pool-id userPoolId \
--username userName \
--user-attributes Name=custom:premium,Value=1
在上面的示例中,我将“ custom:premium ”属性设置为值1(显然,您需要用正确的值替换 userPoolId 和 userName )。
正确设置自定义属性的权限和值后,添加And here is the result of the function call。
希望能帮助到你!
关于amazon-web-services - getUserAttributes响应中缺少自定义属性-AWS Cognito,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48700030/