管理和搜索用户账户
创建用户池后,您可以使用Amazon Web Services Management Console以及 Amazon Command Line Interface 或 Amazon Cognito API 查看和管理用户。本主题将介绍如何使用 Amazon Web Services Management Console查看和搜索用户。
查看用户属性
请使用以下过程在 Amazon Cognito 控制台中查看用户属性。
重置用户的密码
请使用以下过程在 Amazon Cognito 控制台重置用户的密码。
搜索用户属性
如果您已创建用户池,则可以在 的 UsersAmazon Web Services Management Console 面板中搜索。您还可以使用 Amazon Cognito ListUsers API,该 API 接受 Filter 参数。
您可以搜索以下任何标准属性。自定义属性不可搜索。
-
username (区分大小写)
-
email
-
phone_number
-
名称
-
given_name
-
family_name
-
preferred_username
-
cognito:user_status(在控制台中称为状态)(区分大小写)
-
status(在控制台中称为已启用)(区分大小写)
-
sub
您还可以使用客户端筛选条件列出用户。服务器端筛选条件匹配的属性不超过 1 个。对于高级搜索,请使用客户端筛选条件,其中包含 Amazon Command Line Interface 中 list-users
操作的 --query
参数。当您使用客户端筛选条件时,ListUsers 会返回一个不包含或包含多个用户的分页列表。您可以连续接收多个结果为零的页面。对返回的每个分页令牌重复查询,直到您收到一个空的分页令牌值,然后查看合并结果。
有关服务器端和客户端筛选的详细信息,请参阅《Amazon Command Line Interface 用户指南》中的筛选 Amazon CLI 输出。
使用 Amazon Web Services Management Console 搜索用户
如果您已创建用户池,则可以在 的 UsersAmazon Web Services Management Console 面板中搜索。
Amazon Web Services Management Console搜索始终为前缀 (“starts with”) 搜索。
使用 ListUsers
API 搜索用户
要从应用程序中搜索用户,请使用 Amazon Cognito ListUsers API。此 API 使用以下参数:
-
AttributesToGet
:一组字符串,其中每个字符串均为将针对搜索结果中的每位用户返回的用户属性的名称。如果字符串组为空,将返回所有属性。 -
Filter
:筛选条件字符串,格式为 "AttributeName
Filter-Type
"AttributeValue
""。筛选条件字符串中的引号必须使用反斜杠 (\
) 字符进行转义。例如:"family_name = \"Reddy\""
。如果筛选条件字符串为空,ListUsers
将返回用户池中的所有用户。-
AttributeName
:要搜索的属性的名称。一次只能搜索一个属性。注意 您只能搜索标准属性。自定义属性不可搜索。这是因为只有索引属性可搜索,而自定义属性不可索引。
-
Filter-Type
:对于精确匹配,请使用=
,例如given_name = "Jon"
。对于前缀 (“starts with”) 匹配,请使用^=
,例如given_name ^= "Jon"
。 -
AttributeValue
:必须为每位用户匹配的属性值。
-
-
Limit
:要返回的最大用户数。 -
PaginationToken
:可从之前的搜索中获取更多结果的令牌。 -
UserPoolId
:应对其执行搜索的用户池的用户池 ID。
所有搜索都区分大小写。搜索结果按以 AttributeName
字符串命名的属性进行升序排列。
使用 ListUsers
API 的示例
以下示例将返回所有用户并包括所有属性。
{ "AttributesToGet": [], "Filter": "", "Limit": 10, "UserPoolId": "us-east-1_samplepool" }
以下示例将返回电话号码以“+1312”开头的所有用户并包括所有属性。
{ "AttributesToGet": [], "Filter": "phone_number ^= \"+1312\"", "Limit": 10, "UserPoolId": "us-east-1_samplepool" }
以下示例将返回姓氏为“Reddy”的前 10 位用户。对于每个用户,搜索结果包含用户的名字、电话号码和电子邮件地址。如果用户池中有 10 个以上相匹配的用户,则响应将包含一个分页标记。
{ "AttributesToGet": [ "given_name", "phone_number", "email" ], "Filter": "family_name = \"Reddy\"", "Limit": 10, "UserPoolId": "us-east-1_samplepool" }
如果上一示例返回分页标记,则以下示例将返回与同一筛选条件字符串相匹配的接下来的 10 位用户。
{ "AttributesToGet": [ "given_name", "phone_number", "email" ], "Filter": "family_name = \"Reddy\"", "Limit": 10, "PaginationToken": "pagination_token_from_previous_search", "UserPoolId": "us-east-1_samplepool" }