Flutter AWS Auth:如何获取自定义用户属性?

Flutter AWS Auth: How to get custom user attribute?

如何在 Flutter 中获取用户的 cognito 自定义用户属性?

await Amplify.Auth.fetchUserAttributes();

returns只有用户属性,没有自定义属性。

(我已将该属性添加到架构中,我确信它就在那里,在 AWS UI 中它就在那里。)

fetchUserAttributes 函数returns AuthUserAttributes 列表,包括您定义的自定义属性。当您拥有该列表时,您可以遍历它,并获得您想要的属性。

const res = await Amplify.Auth.fetchUserAttributes();

for (var attr in res) {
  if (attr.userAttributeKey == CognitoUserAttributeKey.custom('customAttr') {
    customAttr = attr.value;
  }
}

如果自定义属性不存在,请确保用户拥有该属性。

问题是这些自定义属性在创建后默认情况下不可读或可写。

如需进一步说明,请查看 https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html#user-pool-settings-attribute-permissions-and-scopes 转到 cognito - 应用程序客户端 - 详细信息 - 最底部更改权限