讓APP能以手機號碼註冊成為會員,使用Firebase 2017的Phone簡訊驗證

古老的方法

有許多的網站或APP會在註冊時用到手機號碼驗證,要讓一個APP的會員註冊能夠以使用者的手機號碼,輸入號碼後再傳送帶有驗證碼的簡訊,待收到簡訊後輸入驗證碼,最後再完成註冊流程。開發工作包括如下:

前端APP介面

設計一個註冊畫面,讓使用者輸入手機號碼,並送到後台伺服器端的【註冊服務程式】,由它判斷並產生後台回應碼給APP後,再準備讓使用者輸入簡訊驗證碼。

簡訊傳送平台API

找到一個簡訊服務平台,註冊服務後預繳數百則的簡訊費用,再下載、詳讀它的傳送API文件,撰寫測試程式,確認其運行方法。

後台註冊服務程式

接收手機號碼,檢查是否已註冊過,如已註冊過則回應錯誤碼給前端,若無,則產生亂數驗證碼,最後產生簡訊傳送平台的封包,送出驗證簡訊至使用者的號碼。

後台驗證服務程式

接收前端APP傳來的驗證碼,比對會員資料庫,並確認驗證碼的正確性,若正確無誤,新增會員資料到資料庫,再回送驗證結果與會員ID至APP端。
光是這些開發、測試的工作就需要HTTP網路協定、前端Android開發、後台服務程式開發、資料庫設計與開發能力,再經過3-5天,甚至1星期以上的時間,這個功能才會完善、完整。

Firebase的電信驗證

在2017年的Google IO開發者大會中特別談到Firebase的會員認證加入了Phone驗證方式,支援使用者以手機號碼並接收簡訊驗證,這為原本已有Email、Google、Facebook、Twitter、Github等驗證加入了有競爭力的生力軍。
最近手上有個新創專案剛好需要開發這類功能,我真的不想花數天去開發上述的服務、資料庫等工作,所以,使用了最新版本的Firebase-auth函式庫來完成它。
沒想到,只花了30分鐘就commit這個功能了,打完收工。
以下是執行結果的畫面錄影,測試用手機號碼我加了點馬賽克:


這些富有競爭力的技術,在目前雲端服務迅速發展下,已經是世界公認的開發能力了。學習Android應該重視的是基礎與架構,再加上操作能力、除錯能力,在這些基礎上如果能再加入雲端、Firebase等開發能力與經驗,一定會成為企業競爭力的重要推手,也當然是創業的利器與資產。
如果對於Firebase、雲端Cloud Functions與地圖位置的實作有興趣,可參考專為雲端技術所設計的實務課程【Android進階雲端實務整合 】,以最佳效益方式獲得技術原理、應用面的實作能力。

5 Comments

  1. Hank

    感謝分享資訊, 想請問您稱該方法是古老的方法
    那目前較通用的方法為何呢 謝謝

  2. Paul

    請問該如何撰寫? 是否可以有程式碼 謝謝

    • 這些大都是實務專案中的一小部份功能,沒有程式碼,請參考。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *