Amazon Cognito
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

管理和搜索用户账户

创建您的用户池后,您可以使用 AWS 管理控制台以及 AWS Command Line Interface或 Amazon Cognito API 查看和管理用户。本主题将介绍如何使用 AWS 管理控制台查看和搜索用户。

查看用户属性

您可以在 AWS 管理控制台中执行多项操作:

  • 您可以查看 Pool details,并编辑用户池属性、密码策略、MFA 设置、应用程序和触发器。有关更多信息,请参阅 用户池参考 (AWS 管理控制台)

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

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

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

使用 AWS 管理控制台管理用户池

  1. 在 AWS 管理控制台中的 Amazon Cognito 主页上,选择 Manage your user identities

  2. Your User Pools 页中选择用户池。

  3. 选择 User and Groups 以查看用户信息。

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

    • Add user to group

    • Reset user password

    • Confirm user

    • Enable or disable MFA

    • Delete user

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

搜索用户属性

如果您已创建用户池,则可以在 AWS 管理控制台的 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

使用 AWS 管理控制台搜索用户

如果您已创建用户池,则可以在 AWS 管理控制台的 Users 面板中搜索。

AWS 管理控制台搜索始终为前缀 (“starts with”) 搜索。

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

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

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

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

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

请注意,某些属性值区分大小写,如 User 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" }