Firebase 電話號碼驗證

Firebase Phone Number Verification (Firebase PNV) 是一種快速又安全的方法,可用於驗證使用者電話號碼。與簡訊驗證不同,使用者不必接收簡訊並輸入驗證碼,只要輕觸一下,Firebase PNV 就能直接向連線的電信業者取得裝置中 SIM 卡的電話號碼。這項功能可減少使用者遇到的阻礙,且不需依賴簡訊傳送,因此能提升可靠性,並消除使用簡訊時常見的濫用手法。

主要功能

貨運公司是準確資訊的來源 Google 可透過 Firebase PNV 直接向電信業者取得 SIM 卡的已驗證電話號碼,讓您知道目前執行應用程式的裝置所使用的號碼。簡訊 OTP 只能判斷使用者是否能存取電話號碼。
可單獨使用,或搭配識別資訊提供者使用 您可以單獨使用 Firebase PNV,做為易於整合且可靠的電話號碼驗證方法,也可以搭配 Firebase Authentication 或您自己的驗證系統,將其做為登入方法。
自動使用可用的貨運公司 您可以使用 Firebase PNV SDK 偵測相容性,並在裝置尚未支援 Firebase PNV 時,改用其他方法 (例如簡訊)。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 卡,以及這項做法比簡訊 OTP 更快速安全。這樣可減少混淆,並訓練使用者熟悉新的電話號碼驗證流程。
確認裝置和電信業者是否相容 (建議) 應用程式啟動時,請使用 Firebase PNV SDK 檢查裝置和行動電信業者是否與 Firebase PNV 相容。如果相容,請顯示說明畫面,並提示使用者同意。如果不是,請使用舊版電話號碼驗證方法,例如簡訊。
要求已驗證的電話號碼 使用 Firebase PNV SDK 向行動電信業者要求裝置的已驗證電話號碼。這會觸發使用者同意聲明,而解說畫面可協助使用者完成這項程序。
驗證回應權杖 Firebase PNV 服務的回應中,您會收到已簽署的權杖,可以傳送至應用程式的後端。在後端驗證權杖的簽章。如果簽章有效,則權杖會包含裝置的已驗證電話號碼。

後續步驟

  • Firebase PNV 是付費服務,每次驗證都會產生費用。詳情請參閱「定價」頁面。
  • 請參閱「在 Android 上開始使用」指南,瞭解如何在 Android 應用程式中使用 Firebase PNV