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

管理和搜索用户账户

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

查看用户属性

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

Original console

您可以在 Amazon Web Services Management Console中执行多项操作:

  • 您可以查看池详细信息,并编辑用户池属性、密码策略、MFA 设置、应用程序和触发器。有关更多信息,请参阅 用户池参考(Amazon Web Services Management Console)

  • 您可以查看用户池中的用户,并进一步了解更多详细信息。

  • 您还可以查看关于用户池中个别用户的详细信息。

  • 您也可以搜索用户池中的用户。

查看用户属性

  1. 在 Amazon Web Services Management Console 中的 Amazon Cognito 主页上,选择 Manage your user identities(管理您的用户身份)。

  2. 您的用户池页中选择用户池。

  3. 选择用户和组以查看用户信息。

  4. 选择用户名称以显示关于单个用户的更多信息。在此屏幕中,您可以执行以下任一操作:

    • 将用户添加到组

    • 重置用户密码

    • 确认用户

    • 启用或禁用 MFA

    • 删除用户

New console

查看用户属性

  1. 转到 Amazon Cognito 控制台。如果出现提示,请输入 Amazon 凭证。

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

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

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

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

重置用户的密码

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

Original console

重置用户的密码

  1. 在 Amazon Web Services Management Console 中的 Amazon Cognito 主页上,选择 Manage your user identities(管理您的用户身份)。

  2. 您的用户池页中选择用户池。

  3. 选择用户和组以查看用户信息。

  4. 在列表中选择要为其重置密码的用户。

    Reset user password(重置用户密码)操作会立即向用户发送确认代码,并通过将用户状态更改为 RESET_REQUIRED 来禁用用户的当前密码。启用 MFA 操作会导致在用户尝试登录时立即向其发送确认代码。重置用户密码代码的有效期为 1 小时。MFA 代码的有效期为 3 分钟。

New console

重置用户的密码

  1. 转到 Amazon Cognito 控制台。如果出现提示,请输入 Amazon 凭证。

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

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

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

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

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

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

搜索用户属性

如果您已创建用户池,则可以在 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”) 搜索。

Original console

以下所有示例均使用同一个用户池。

例如,如果您要列出所有用户,则将搜索框留空。


              要列出所有用户,请将搜索框留空。

如果您要搜索所有已确认的用户,则从下拉菜单中选择状态。在搜索框中,输入单词“confirmed”的第一个字母。


              要列出所有已确认的用户,请选择 Status (状态) 并键入单词“confirmed”的第一个字母。

请注意,某些属性值区分大小写,如用户名


              如果针对区分大小写的属性输入错误的大小写,属性值将不匹配。
New console

在 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:一组字符串,其中每个字符串均为将针对搜索结果中的每位用户返回的用户属性的名称。如果字符串组为空,将返回所有属性。

  • 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" }