設置一個示例 Android 應用程序與撲 - Amazon Cognito

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

設置一個示例 Android 應用程序與撲

在本教程中,您將在 Android Studio 中創建一個移動應用程序,您可以在其中模擬設備並測試用戶註冊,確認和登錄。這個示例應用程序創建一個基本的 Amazon Cognito 用戶池移動客戶端為 Android 在 Flutter。如果您已經在使用 Flutter 進行移動應用程序開發方面有經驗,請從 GitHub下載示例應用程序

下列螢幕擷取畫面顯示在虛擬 Android 裝置上執行的應用程式。

虛擬化 Android 示例應用程序的註冊頁面的屏幕截圖。

[建立使用者集區] 程序會為您設定可搭配範例應用程式使用的使用者集區。如果您的使用者集區符合下列需求,則可略過此步驟:

  • 使用者可以使用其電子郵件地址登入。Cognito 使用者集區登入選項電子郵件

  • 使用者名稱不區分大小寫。使用者名稱需求:未選取使用者名稱區分大小寫

  • 不需要多因素身份驗證(MFA)。MFA 執行可選 M FA。

  • 您的使用者集區會透過電子郵件訊息驗證使用者設定檔確認的屬性。要驗證的屬性傳送電子郵件訊息、驗證電子郵件地址

  • 電子郵件是唯一必需的屬性。必要屬性電子郵件

  • 使用者可以在您的使用者集區中自行註冊。自助註冊:已選取「啟用自助註冊」。

  • 您的初始應用程序客戶端是一個公共客戶端,允許使用用戶名和密碼登錄。應用程序類型公共客戶端身份驗證流程:ALLOW_USER_PASSWORD_AUTH

建立新的使用者集區
  1. 前往 Amazon Cognito 主控台。如果出現提示,請輸入您的 AWS 認證。

  2. 選擇 [建立使用者集區] 按鈕。您可能需要從左側導覽窗格中選取 [使用者集區],以顯示此選項。

  3. 在頁面右上角,選擇 Create a user pool (建立使用者集區),以開始建立使用者集區精靈。

  4. [設定登入體驗] 中,您可以選擇要用於此使用者集區的身分識別提供者 (IdPs)。如需詳細資訊,請參閱 透過第三方新增使用者集區登入

    1. 驗證提供者下,對於提供者類型,請確保僅選取 Cognito 使用者集區

    2. Cognito 使用者集區登入選項中,選擇 [使用者名稱]。請勿選取任何其他使用者名稱要求

    3. 保留所有其他選項為預設值,然後選擇「下一步」。

  5. 在 [設定安全性需求] 中,您可以選擇密碼原則、多重要素驗證 (MFA) 需求,以及使用者帳戶復原選項。如需詳細資訊,請參閱 使用 Amazon Cognito 使用者集區安全性功能

    1. 對於密碼原則,請確認密碼原則模式設定為 Cognito 預設值

    2. 多因素驗證下,對於 MFA 強制,請選擇選擇性 MFA。

    3. 對於 MFA 方法,請選擇驗證器應用程式SMS 訊息

    4. 對於使用者帳戶復原,請確認已選取 [啟用自助帳戶復原],且使用者帳戶復原郵件傳遞方法設定為 [僅限電子郵件]。

    5. 保留所有其他選項為預設值,然後選擇「下一步」。

  6. [設定註冊體驗] 中,您可以決定新使用者在以新使用者身分註冊時如何驗證其身分,以及在使用者註冊流程期間,哪些屬性應為必要或選用屬性。如需詳細資訊,請參閱 管理使用者集區中的使用者

    1. 確認已選取 「啟用自助註冊」。此設定會開啟您的使用者集區,以便從網際網路上的任何人進行註冊。這是用於範例應用程式的目的,但在生產環境中請謹慎套用此設定。

    2. 在「Cognito 協助驗證與確認」下,確認已選取「允許 Cognito 自動傳送訊息以進行驗證並確認」核取方塊。

    3. 確認要驗證的屬性設定為傳送電子郵件訊息,驗證電子郵件地址

    4. 在 [驗證屬性變更] 下,確認已選取預設選項:選取更新處於擱置狀態時保留原始屬性值,以及將更新擱置時的 Active 屬性值設定為 [電子郵件地址]。

    5. 必要屬性下,確認根據先前選取的必要屬性顯示電子郵件

      重要

      對於此示例應用程序,您的用戶池不得將 phone_number 設置為必需屬性。如果 phone_number 顯示為必要屬性,請檢閱並更新您先前的選擇:

      • 可選 MFA僅用於用戶帳戶恢復消息的傳遞方法的電子郵件

      • 發送電子郵件,驗證要驗證屬性的電子郵件地址

    6. 保留所有其他選項為預設值,然後選擇「下一步」。

  7. 設定訊息傳遞中,您可以設定與 Amazon 簡單電子郵件服務和 Amazon 簡單通知服務的整合,以傳送電子郵件和簡訊給使用者以進行註冊、帳戶確認、MFA 和帳戶復原。如需詳細資訊,請參閱 Amazon Cognito 使用者集區的電子郵件設定SMSAmazon Cognito 使用者集區的訊息設定

    1. 對於電子郵件提供者,請選擇「使用 Cognito 傳送電子郵件」,並使用 Amazon Cognito 提供的預設電子郵件寄件者。這個低電子郵件量的設定已足以進行應用程式測試。您可以在使用 Amazon 簡易電子郵件服務 (Amazon SES) 驗證電子郵件地址並選擇使用 Amazon SES 傳送電子郵件後退貨。

    2. 對於 SMS,請選取建立新的 IAM 角色,然後輸入 IAM 角色名稱。這會建立一個角色,授予 Amazon Cognito 許可以傳送簡訊的權限。

    3. 保留所有其他選項為預設值,然後選擇「下一步」。

  8. 在「整合您的應用程式」中,您可以為使用者集區命名、設定託管 UI,以及建立應用程式用戶端。如需詳細資訊,請參閱 使用託管 UI 添加應用程序客戶端。範例應用程式不使用託管 UI。

    1. 在 [使用者集區名稱] 下,輸入使用者集區名稱

    2. 請勿選取 [使用 Cognito 託管的使用者介面]。

    3. 初始應用程序客戶端下,確認應用程序類型設置為公共客戶端

    4. 在 [用戶端密碼] 下,確認已選取 [不產生用戶端密碼]。

    5. 輸入 App client name (應用程式用戶端名稱)。

    6. 展開進階應用程式用戶端設定 新增ALLOW_USER_PASSWORD_AUTH驗證流程清單。

    7. 保留所有其他選項為預設值,然後選擇「下一步」。

  9. 在「檢閱並建立」畫面中檢閱您的選擇,並視需要修改任何選取項目。如果您對使用者集區設定感到滿意,請選擇 [建立使用者集區] 以繼續。

  10. 在 [使用者集區] 頁面中,選擇新的使用者集區。

  11. 使用者集區概觀下,記下您的使用者集區 ID。您將在建立範例應用程式時提供此字串。

  12. 選擇「應用程式整合」標籤,然後找到「應用程式用戶端和分析」 選取新的應用程式用戶端。記下您的客戶 ID

建立應用程式

若要建立範例安卓應用程式
  1. 安裝 Android 工作室命令列工具

  2. 在安卓工作室中,安裝撲插件

  3. 此示例應用程序中的cognito_flutter_mobile_app目錄內容創建一個新的 Android 工作室項目。

    1. 編輯assets/config.json<<YOUR USER POOL ID>><< YOUR CLIENT ID>>取代您先前建立的使用者集區和應用程式用戶端的 ID。

  4. 安裝

    1. 添加撲到您的 PATH 變量。

    2. 使用下列命令接受授權。

      flutter doctor --android-licenses

    3. 驗證您的 Flutter 環境並安裝任何缺少的組件。

      flutter doctor

      1. 如果缺少任何組件,請運行flutter doctor -v以了解如何解決此問題。

    4. 切換到新的 Flutter 項目的目錄並安裝依賴項。

      1. 執行 flutter pub add amazon_cognito_identity_dart_2

    5. 執行 flutter pub add flutter_secure_storage

  5. 創建一個虛擬的安卓設備。

    1. 在 Android 工作室圖形用戶界面中,使用設備管理器創建一個新設備

    2. 在 CLI 中,執行flutter emulators --create --name android-device

  6. 啟動您的虛擬安卓設備。

    1. 在 Android 工作室圖形用戶界面中,選擇虛擬設備 旁邊的開始圖標。

    2. 在 CLI 中,執行flutter emulators --launch android-device

  7. 在虛擬設備上啟動您的應用程序。

    1. 在安卓工作室圖形用戶界面中,選擇部署 圖標。

    2. 在 CLI 中,執行flutter run

  8. 在 Android 工作室中導航到正在運行的虛擬設備。

  9. 使用有效的電子郵件地址註冊新用戶。

  10. 從您的電子郵件中檢索確認代碼。在應用程序中輸入確認代碼。

  11. 使用您的用戶名和密碼登錄。