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:
確認使用者的裝置和行動電信業者是否支援這項功能。
徵求使用者同意,將電話號碼分享給您的應用程式。
與 SIM 卡指派的行動電信業者合作,取得已驗證的電話號碼。
將含有已驗證電話號碼的簽署權杖傳回應用程式,通常在使用者同意後 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。