AWS Cognito ListUsers InvalidParameterException 在自定义属性上使用 AttributesToGet

Nog*_*enn 5 amazon-web-services node.js amazon-cognito aws-lambda

使用以下基于 AWS Lambda 的应用程序客户端,我尝试列出 Cognito 用户池中的所有用户。

let AWS = require('aws-sdk')
const COGNITO_CLIENT = new AWS.CognitoIdentityServiceProvider()
COGNITO_CLIENT.listUsers({
  UserPoolId: 'MyUserPoolId',
  AttributesToGet: ['default_attribute', 'custom:my_attribute']
}, callback)
Run Code Online (Sandbox Code Playgroud)

默认情况下()查询所有属性时一切正常AttributesToGet: [] // or excluding this field altogether。但是,当针对自定义属性时,会引发 InvalidParameterException。这是使用 Amazon SDK for Node.js。

不过,允许使用默认属性:

AttributesToGet: ['email', 'name', /* other non-custom */]
Run Code Online (Sandbox Code Playgroud)

小智 5

请删除“AttributesToGet”并尝试。


Ion*_*ian 0

你的代码是正确的。但是,我是 Cognito 团队的成员,目前我们不支持对自定义属性进行搜索。

  • 关于 AttributesToGet 的那部分可以记录下来吗?过滤器参数文档确实声明它无法搜索自定义属性,但我确信 AttributesToGet 部分没有指定一个警告,即它隐式使用与过滤器中相同的搜索算法,因此不允许定位自定义属性。但我觉得这违反直觉。它只是针对返回的属性,而不完全是搜索。它应该能够处理自定义属性作为 AttributeToGet 的目标 (6认同)