管理和搜索用户账户 - Amazon Cognito
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

管理和搜索用户账户

创建用户池后,您可以使用Amazon Web Services Management Console以及 Amazon Command Line Interface 或 Amazon Cognito API 查看和管理用户。本主题将介绍如何使用 Amazon Web Services Management Console查看和搜索用户。

查看用户属性

请使用以下过程在 Amazon Cognito 控制台中查看用户属性。

查看用户属性
  1. 转到 Amazon Cognito 控制台。如果出现提示,请输入 Amazon 凭证。

  2. 选择 User Pools(用户池)。

  3. 从列表中选择现有用户池。

  4. 选择 Users(用户)选项卡,然后在列表中选择用户。

  5. 在用户详细信息页面,您可以在 User attributes(用户属性)中查看哪些属性与用户关联。

重置用户的密码

请使用以下过程在 Amazon Cognito 控制台重置用户的密码。

重置用户的密码
  1. 转到 Amazon Cognito 控制台。如果出现提示,请输入 Amazon 凭证。

  2. 选择 User Pools(用户池)。

  3. 从列表中选择现有用户池。

  4. 选择 Users(用户)选项卡,然后在列表中选择用户。

  5. 在用户详细信息页面上,选择 Actions(操作)、Reset password(重置密码)。

  6. Reset password(重置密码)对话框中,查看信息,准备就绪后,选择 Reset(重置)。

    该操作会立即导致向用户发送确认代码,并通过将用户状态更改为 RESET_REQUIRED 来禁用用户的当前密码。Reset password(重置密码)代码的有效期为 1 小时。

搜索用户属性

如果您已创建用户池,则可以在 Amazon Web Services Management Console 的 Users(用户)面板中搜索。您还可以使用 Amazon Cognito ListUsers API,该 API 接受 Filter 参数。

您可以搜索以下任何标准属性。自定义属性不可搜索。

  • username(区分大小写)

  • email

  • phone_number

  • name

  • given_name

  • family_name

  • preferred_username

  • cognito:user_status(在控制台中称为Status(状态))(区分大小写)

  • status(在控制台中称为Enabled(已启用))(区分大小写)

  • sub

注意

您还可以使用客户端筛选条件列出用户。服务器端筛选条件匹配的属性不超过 1 个。对于高级搜索,请使用客户端筛选条件,其中包含 Amazon Command Line Interface 中 list-users 操作的 --query 参数。当您使用客户端筛选条件时,ListUsers 会返回一个不包含或包含多个用户的分页列表。您可以连续接收多个结果为零的页面。对返回的每个分页令牌重复查询,直到您收到一个空的分页令牌值,然后查看合并结果。

有关服务器端和客户端筛选的详细信息,请参阅《Amazon Command Line Interface 用户指南》中的筛选 Amazon CLI 输出

使用 Amazon Web Services Management Console 搜索用户

如果您已创建用户池,则可以在 Amazon Web Services Management Console 的 Users(用户)面板中搜索。

Amazon Web Services Management Console搜索始终为前缀 (“starts with”) 搜索。

在 Amazon Cognito 控制台中搜索用户
  1. 转到 Amazon Cognito 控制台。系统可能会提示您输入 Amazon 凭证。

  2. 选择 User Pools(用户池)。

  3. 从列表中选择现有用户池。

  4. 选择 Users(用户)选项卡,然后在搜索字段中输入用户的用户名。请注意,某些属性值区分大小写 [例如,Username(用户名)]。

    您还可以通过调整搜索筛选条件来查找用户,将范围缩小到其它用户属性,如 Email(电子邮件)、Phone number(电话号码)或 Last name(姓)。

使用 ListUsers API 搜索用户

要从应用程序中搜索用户,请使用 Amazon Cognito ListUsers API。此 API 使用以下参数:

  • AttributesToGet:一组字符串,其中每个字符串均为将针对搜索结果中的每位用户返回的用户属性的名称。要检索所有属性,请不要包含 AttributesToGet 参数或文本字符串值为 null 的请求 AttributesToGet

  • Filter:筛选条件字符串,格式为 "AttributeName Filter-Type "AttributeValue""。筛选条件字符串中的引号必须使用反斜杠 (\) 字符进行转义。例如,"family_name = \"Reddy\""。如果筛选条件字符串为空,ListUsers 将返回用户池中的所有用户。

    • AttributeName:要搜索的属性的名称。一次只能搜索一个属性。

      注意

      您只能搜索标准属性。自定义属性不可搜索。这是因为只有索引属性可搜索,而自定义属性不可索引。

    • Filter-Type:对于精确匹配,请使用 =,例如 given_name = "Jon"。对于前缀 (“starts with”) 匹配,请使用 ^=,例如 given_name ^= "Jon"

    • AttributeValue:必须为每位用户匹配的属性值。

  • Limit:要返回的最大用户数。

  • PaginationToken:可从之前的搜索中获取更多结果的令牌。Amazon Cognito 会在一小时后让分页令牌过期。

  • UserPoolId:应对其执行搜索的用户池的用户池 ID。

所有搜索都区分大小写。搜索结果按以 AttributeName 字符串命名的属性进行升序排列。

使用 ListUsers API 的示例

以下示例将返回所有用户并包括所有属性。

{ "AttributesToGet": null, "Filter": "", "Limit": 10, "UserPoolId": "us-east-1_samplepool" }

以下示例将返回电话号码以“+1312”开头的所有用户并包括所有属性。

{ "AttributesToGet": null, "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" }