Firebase 電話號碼驗證

Firebase Phone Number Verification (Firebase PNV) 是更快速、更安全的電話號碼驗證方法。簡訊驗證需要使用者接收並輸入簡訊中的驗證碼,Firebase PNV 則不同,只要輕觸一下,就能直接從連線的電信業者取得指派給裝置 SIM 卡的電話號碼。這可減少使用者操作上的不便、提高可靠性 (因為不依賴簡訊傳送),並消除使用簡訊時常見的濫用媒介。

主要功能

以電信業者提供的資訊為準 Google 會透過 Firebase PNV 直接向電信業者取得 SIM 卡的已驗證電話號碼,讓您知道目前執行應用程式的裝置所使用的號碼。簡訊動態密碼只能判斷使用者是否能存取電話號碼。
單獨使用或搭配識別資訊提供者 您可以單獨使用 Firebase PNV,做為易於整合且可靠的 電話號碼驗證方法,也可以搭配 Firebase Authentication 或您自己的驗證系統,將 做為登入方式 。
自動使用可用的貨運公司 如果裝置尚未支援 Firebase PNV,您可以使用 Firebase PNV SDK 偵測相容性,並改用其他方法 (例如簡訊)。Firebase PNV將逐步開放全球電信業者使用。如有新的電信業者加入,您就能自動使用,不必對應用程式進行任何額外變更。如需參與電信業者清單,請參閱「電信業者支援」。
防範簡訊網路釣魚攻擊 由於 Firebase PNV 不會傳送任何簡訊來驗證電話號碼,因此使用者不會收到釣魚簡訊,避免帳戶遭盜用。

運作原理

提出電話號碼驗證要求時,Firebase PNV:

  1. 確認使用者的裝置和行動電信業者是否支援這項功能。

  2. 取得使用者同意,將電話號碼提供給應用程式。

  3. 與 SIM 卡指派的行動電信業者合作,取得已驗證的電話號碼。

  4. 在使用者同意後,通常會在 1 到 3 秒內,將含有已驗證電話號碼的已簽署權杖傳回應用程式。

驗證這個權杖的簽章後,應用程式就會取得使用者已驗證的電話號碼。您也可以將這個權杖用於電話號碼登入流程,例如使用 Firebase Authentication 或自己的驗證後端。

實作路徑

設定 Firebase 專案 在 Firebase 控制台中完成新手上路步驟,為 Firebase 專案啟用計費功能和 Firebase Phone Number Verification API。
安裝 SDK 並初始化 請根據應用程式平台安裝 Firebase PNV SDK。SDK 必須先完成 OAuth 品牌驗證,
設計說明畫面 (建議) 觸發正式的使用者同意聲明 UI 前,請先說明他們需要選取 SIM 卡來擷取號碼,以及這種做法為何比簡訊動態密碼更快、更安全。這有助於減少混淆,並訓練使用者熟悉新的電話號碼驗證流程。
確認裝置和電信業者是否相容 (建議) 應用程式啟動時,請使用 Firebase PNV SDK 檢查裝置和行動電信業者是否與 Firebase PNV 相容。如果相容,請顯示說明畫面,並提示使用者同意。如果不是,請使用舊版電話號碼驗證方法,例如簡訊。
要求已驗證的電話號碼 使用 Firebase PNV SDK 向行動電信業者要求裝置的已驗證電話號碼。這會觸發使用者同意聲明,而解說畫面可協助使用者完成同意程序。
驗證回應權杖 在 Firebase PNV 服務的回應中,您會取得已簽署的權杖,可以傳送至應用程式的後端。在後端驗證權杖的簽章。如果簽章有效,則權杖會包含裝置的已驗證電話號碼。

後續步驟

  • 請參閱「Android 入門指南」,瞭解如何使用無 SIM 卡測試模式,在 Android 應用程式中測試 Firebase PNV。
  • 試試程式碼實驗室,逐步瞭解如何將 Firebase PNV 整合至 Android 應用程式。