電子郵件動作中的狀態

傳送密碼的電子郵件動作時,您可以透過延續網址來傳遞狀態 重設或驗證使用者的電子郵件這樣一來,使用者就能 請在操作完成後返回應用程式。此外,您還可以指定 是否直接從行動應用程式處理電子郵件動作連結 而不是網頁

這在下列常見情境中非常實用:

  • 使用者 (目前並未登入) 可能嘗試存取 要求使用者必須登入。然而,使用者可能忘記 並因此觸發重設密碼流程。結尾 流程時,使用者會預期返回應用程式的某個部分 嘗試存取的內容

  • 應用程式只能提供已驗證帳戶的存取權。適用對象 例如,電子報可能會要求使用者之前驗證電子郵件 訂閱。使用者會經過電子郵件驗證流程,並預期 即可返回應用程式完成訂閱。

  • 或者,使用者可能從行動裝置開始轉移流程 並且預期在驗證後返回行動應用程式 。

能夠透過繼續網址傳遞狀態是一項強大的功能, Firebase 驗證功能提供可大幅提升使用者體驗的功能。

在電子郵件動作中傳遞狀態/繼續網址

為了安全傳遞繼續網址,網址的網域必須符合 已在 Firebase 控制台新增為授權網域。 方法是在驗證部分,將該網域新增至 「Sign-in method」分頁下會列出「Authorized domain」(授權網域) 清單 (如果尚未顯示)。

傳送時必須提供 firebase.auth.ActionCodeSettings 例項 並要求重設密碼電子郵件或驗證電子郵件這個介面使用 參數

參數 類型 說明
url 字串

設定不同意義的連結 (狀態/繼續網址) 不同的情境:

  • 在網頁動作小工具中處理連結時,這就是深層連結 continueUrl 查詢參數中的連結。
  • 如果直接在應用程式中處理連結,則這是 continueUrl 查詢參數 動態連結。
iOS ({bundleId: string}|未定義) 設定 iOS 軟體包 ID。如果發生以下情況,系統將嘗試在 iOS 應用程式中開啟連結 已安裝您必須在控制台註冊該 iOS 應用程式。
android ({packageName: string, installApp:boolean|undefined, minVersion:字串|未定義}|未定義) 設定 Android 套件名稱。系統將嘗試在 Android 應用程式 (如有安裝)。如果傳遞 installApp,則會 會指定是否要安裝 Android 應用程式 (裝置支援的話),並 使用者尚未安裝應用程式如果這個欄位不含 packageName,系統會擲回錯誤,說明 「packageName」必須搭配這個欄位提供。 如果指定的是 minimumVersion,那麼 應用程式安裝成功後,系統會引導使用者前往 Play 商店升級應用程式。 您必須在控制台中註冊 Android 應用程式。
handleCodeInApp (布林值|未定義) 用來在行動應用程式或網頁上開啟電子郵件動作連結 連結。預設值為 false。如果設為 true,動作代碼連結 會以通用連結或 Android 應用程式連結的形式傳送,且會開啟 。如果是 false,則程式碼會傳送到 網頁小工具會重新導向至 已安裝。
dynamicLinkDomain (字串|未定義) 設定目前連結要使用的動態連結網域 (或子網域) (如果是使用 Firebase Dynamic Links 開啟)做為多重動態 每個專案都可以設定連結網域 明確選擇一種如未提供,第一個網域 加以排序。

以下範例說明如何傳送 會先以 Firebase 動態連結的形式在行動應用程式中開啟 動態連結網域 example.page.link (iOS 應用程式 com.example.ios 或 Android 應用程式 com.example.android,且請前往 如未安裝,最低版本為 12,則會安裝。 深層連結將包含繼續網址酬載 https://www.example.com/?email=user@example.com

var actionCodeSettings = {
  url: 'https://www.example.com/?email=' + firebase.auth().currentUser.email,
  iOS: {
    bundleId: 'com.example.ios'
  },
  android: {
    packageName: 'com.example.android',
    installApp: true,
    minimumVersion: '12'
  },
  handleCodeInApp: true,
  // When multiple custom dynamic link domains are defined, specify which
  // one to use.
  dynamicLinkDomain: "example.page.link"
};
firebase.auth().currentUser.sendEmailVerification(actionCodeSettings)
  .then(function() {
    // Verification email sent.
  })
  .catch(function(error) {
    // Error occurred. Inspect error.code.
  });

Firebase 驗證會使用 Firebase Dynamic Links 傳送 要用在行動應用程式中開啟的連結為了使用這份 功能,就需要在 Firebase 控制台中設定 Dynamic Links。

  1. 啟用 Firebase Dynamic Links:

    1. Firebase 控制台中開啟「Dynamic Links部分。
    2. 如果您尚未接受《Dynamic Links 條款》並建立Dynamic Links 網域,請立即採取相關行動。

      如果您已建立 Dynamic Links 網域,請記下該網域。Dynamic Links 網域通常如下所示:

      example.page.link

      將 Apple 或 Android 應用程式設為 攔截傳入連結。

  2. 設定 Android 應用程式:

    1. 如果您打算從 Android 應用程式處理這些連結, 您必須在 Firebase 控制台中指定 Android 套件名稱 專案設定。此外,應用程式的 SHA-1 和 SHA-256 所需憑證
    2. 您也需要在 您的 AndroidManifest.xml 檔案。
    3. 詳情請參閱 取得 Android Dynamic Links 操作說明
  3. 設定 iOS 應用程式:

    1. 如果您打算在 iOS 應用程式中處理這些連結, 您必須在 Firebase 控制台中指定 iOS 軟體包 ID 專案設定。此外,App Store ID 和 Apple Developer 您也需要指定團隊 ID。
    2. 您也必須將 FDL 通用連結網域設為 應用程式功能的關聯網域。
    3. 如果您打算將應用程式發行到 iOS 8 以下版本, 您需要將 iOS 軟體包 ID 設定為 網址。
    4. 詳情請參閱 取得 iOS Dynamic Links 操作說明

處理網頁應用程式中的電子郵件動作

您可以指定是否要處理來自網路的動作代碼連結 再重新導向至其他網頁或行動應用程式 驗證完成後,前提是行動應用程式可供使用。 方法是將 handleCodeInApp 設為 false firebase.auth.ActionCodeSettings 物件。iOS 軟體包 ID 或 Android 套件名稱,只要提供這類名稱,使用者就能 以在電子郵件動作程式碼完成時,重新導向至指定應用程式。

這裡使用的網址是電子郵件動作範本中設定的網址 專區。已佈建所有專案的預設 ID。詳情請參閱 自訂電子郵件處理常式,以瞭解更多資訊 如何自訂電子郵件動作處理常式。

在這個範例中,continueUrl 查詢參數中的連結會是 FDL 連結,其酬載是 ActionCodeSettings 中指定的 URL 物件。雖然您可以攔截及處理應用程式傳入的連結 沒有額外的依附元件,建議使用 FDL 用戶端程式庫 自動剖析深層連結

處理電子郵件動作 (例如電子郵件驗證) 時, 您需要從深層連結中剖析 oobCode 查詢參數,然後套用 並透過 applyActionCode 使變更生效,例如:待驗證電子郵件。

處理行動應用程式中的電子郵件動作

您可以指定是否要處理檔案中的動作程式碼連結。 請先安裝行動應用程式Android 應用程式 您也可以透過 android.installApp 指定應用程式的 ,如果裝置支援此功能,且尚未安裝,系統將會予以安裝。 如果點擊連結的來源裝置不支援行動裝置 就會改為從網頁開啟 方法是將 handleCodeInApp 設為 true firebase.auth.ActionCodeSettings 物件。行動應用程式的 此外,您也必須指定 Android 套件名稱或 iOS 軟體包 ID。

在沒有可用的行動應用程式時,此處所用的備用網址會是 透過電子郵件動作範本部分設定已佈建預設金鑰 包含所有專案詳情請參閱 自訂電子郵件處理常式,以瞭解更多資訊 如何自訂電子郵件動作處理常式。

在此情況下,傳送到使用者的行動應用程式連結會是 FDL 連結,且 payload 是動作程式碼網址,在主控台中設定,使用查詢 oobCodemodeapiKeycontinueUrl 參數。後者則是 ActionCodeSettings 物件中指定的原始 URL。雖然您可以 攔截及處理應用程式傳入的連結,無需任何其他 ,我們建議使用 FDL 用戶端程式庫剖析以下項目的深層連結: 您。動作程式碼可以直接在行動應用程式中套用 請參閱 自訂電子郵件處理常式一節。

處理電子郵件動作 (例如電子郵件驗證) 時, 您需要從深層連結中剖析 oobCode 查詢參數,然後套用 並透過 applyActionCode 使變更生效,例如:待驗證電子郵件。