管理及搜尋使用者帳戶 - Amazon Cognito

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

管理及搜尋使用者帳戶

建立使用者集區之後,您可以使用 AWS Management Console,也可以使用 AWS Command Line Interface 或 Amazon Cognito API 來檢視並管理使用者。本主題說明如何使用 AWS Management Console來檢視及搜尋使用者。

檢視使用者屬性

使用下列處理程序,在 Amazon Cognito 主控台中檢視使用者屬性。

檢視使用者屬性
  1. 前往 Amazon Cognito 主控台。若出現提示,請輸入 AWS 憑證。

  2. 選擇 User Pools (使用者集區)。

  3. 從清單中選擇現有的使用者集區。

  4. 選擇 Users (使用者) 標籤,然後在清單中選取使用者。

  5. 在使用者詳細資訊頁面,User attributes (使用者屬性) 下,您可以檢視與使用者相關聯的屬性。

重設使用者密碼

使用下列處理程序,在 Amazon Cognito 主控台中重設使用者密碼。

重設使用者密碼
  1. 前往 Amazon Cognito 主控台。若出現提示,請輸入 AWS 憑證。

  2. 選擇 User Pools (使用者集區)。

  3. 從清單中選擇現有的使用者集區。

  4. 選擇 Users (使用者) 標籤,然後在清單中選取使用者。

  5. 在使用者詳細資訊頁面上,選擇 Actions (動作)、Reset password (重設密碼)。

  6. Reset password (重設密碼) 對話方塊中檢閱資訊,準備好時,選擇 Reset (重設)。

    此動作會導致立即傳送確認碼給使用者,並將使用者狀態變更為 RESET_REQUIRED,以停用使用者目前的密碼。Reset password (重設密碼) 代碼有效期為 1 小時。

搜尋使用者屬性

如果您已經建立使用者集區,即可從 中的 UsersAWS Management Console (使用者) 面板進行搜尋。您也可以使用 Amazon Cognito ListUsers API,其接受 Filter 參數。

您可以搜尋下列任何標準屬性。無法搜尋自訂屬性。

  • username (區分大小寫)

  • email

  • phone_number

  • name

  • given_name

  • family_name

  • preferred_username

  • cognito:user_status (在主控台中稱為 Status (狀態)、區分大小寫)

  • status (在主控台中稱為 Enabled (已啟用)、區分大小寫)

  • sub

注意

您也可以使用用戶端篩選條件列出使用者。與伺服器端篩選條件相符的屬性不超過 1 個。若要執行進階搜尋,請將用戶端篩選條件與 AWS Command Line Interface 中的 list-users 動作 --query 參數搭配使用。當您使用用戶端篩選條件時,ListUsers 會傳回零個或多個使用者的分頁清單。您可以連續接收多個結果為零的頁面。使用傳回的每個分頁權杖重複查詢,直到您收到空分頁權杖值為止,然後檢閱合併的結果。

如需伺服器端和用戶端篩選的詳細資訊,請參閱《AWS Command Line Interface 使用者指南》中的篩選 AWS CLI 輸出

使用 AWS Management Console 來搜尋使用者

如果您已經建立使用者集區,即可從 中的 UsersAWS Management Console (使用者) 面板進行搜尋。

AWS Management Console搜尋一律為字首 (「開頭為」) 搜尋。

在 Amazon Cognito 主控台中搜尋使用者
  1. 前往 Amazon Cognito 主控台。您可能會收到提示,要求您輸入 AWS 憑證。

  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"。若要搜尋字首 (「開頭為」) 相符的項目,請使用 ^=,例如,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" }