我正在尝试获取具有 email_verified 属性的所有cognito用户的列表,然后是所有不具备该属性的用户(我也可以使用获取所有用户,将 email_verified 属性与用户一起使用,以便我可以创建两个列表)。到目前为止我的方法是做这样的事情
client.list_users(
UserPoolId=pool_id,
AttributesToGet=['email_verified']
)
只要所有用户都拥有 email_verified 属性,此功能就可以使用。但是,如果用户没有此属性,我会收到此错误:
ClientError:发生错误(InvalidParameterException)时 调用ListUsers操作:一个或多个请求的属性 不存在。
我曾试图在ListUsers函数中使用Filter参数,但它似乎并不喜欢 email_verified 属性。
任何建议都将不胜感激。
如果重要,我想在python
中执行此操作答案 0 :(得分:3)
我知道这个问题很旧,但是我会回答,以防万一有人也在寻找答案(就像我昨天一样)。
如果在调用listUsers时仅省略AttributesToGet参数,它将返回具有每个用户的所有属性的用户列表。然后,您可以遍历该列表并选择具有email_verified属性的用户,具体取决于该属性是true还是false。
答案 1 :(得分:0)
AttributesToGet字段基本上是一个投影,是您希望事实上的搜索返回的一组属性。如果不存在,则无法获得,因此错误。
您是否可以让每个拥有电子邮件属性的用户?然后根据该属性是否存在于集合中来拆分列表?
答案 2 :(得分:0)
尝试使用属性" status"。
状态应该显示"已确认"和未经证实的"用户。
以下是您可以搜索的属性列表。搜索不支持其他属性。
用户名(区分大小写)
电子邮件
PHONE_NUMBER
名称
GIVEN_NAME
FAMILY_NAME
preferred_username
cognito:user_status(在控制台中称为“已启用”)(区分大小写)
状态(不区分大小写)