אימות מספר הטלפון ב-Firebase

Firebase Phone Number Verification (Firebase PNV) היא שיטה מהירה ומאובטחת יותר לאימות מספרי טלפון. בניגוד לאימות שמבוסס על SMS, שבו המשתמשים צריכים לקבל קוד בהודעת טקסט ולהזין אותו, Firebase PNV פועל באמצעות קבלת מספר הטלפון שהוקצה לכרטיס ה-SIM במכשיר ישירות מהספק המחובר בלחיצה אחת. כך מקלים על המשתמשים, משפרים את האמינות כי לא מסתמכים על מסירת הודעות SMS, ומבטלים וקטורים של ניצול לרעה שמשמשים בדרך כלל כשמשתמשים ב-SMS.

יכולות עיקריות

הספקים הם מקור המידע האמין באמצעות Firebase PNV, ‏ Google מקבלת את מספר הטלפון המאומת של כרטיס ה-SIM ישירות מהספק, ומציינת איזה מספר מופיע במכשיר שבו האפליקציה פועלת כרגע. קוד אימות חד-פעמי ב-SMS יכול רק להראות לכם אם למשתמש יש גישה למספר הטלפון.
שימוש עצמאי או עם ספק זהויות אפשר להשתמש ב-Firebase PNV כשיטה קלה לשילוב ולאימות מהימן של מספרי טלפון, או כשיטת כניסה עם Firebase Authentication או עם מערכת האימות שלכם.
שימוש אוטומטי בחברות תובלה זמינות אפשר להשתמש ב-Firebase PNV SDK כדי לזהות תאימות ולחזור לשימוש בשיטה אחרת, כמו SMS, אם Firebase PNV עדיין לא נתמך במכשיר. Firebase PNV יהיה זמין בהדרגה לספקי סלולר ברחבי העולם. כאשר חברות תובלה חדשות יהיו זמינות, תוכלו להשתמש בהן באופן אוטומטי בלי לבצע שינויים נוספים באפליקציה. במאמר תמיכה בחברות תובלה מופיעה רשימה של חברות התובלה המשתתפות.
איך למנוע התקפות פישינג באמצעות SMS מכיוון ש-Firebase PNV לא שולחת הודעות SMS לאימות מספר טלפון, משתמשים לא יכולים להיות קורבנות של פישינג לקבלת קודים חד-פעמיים, שבהם אפשר להשתמש במתקפות השתלטות על חשבונות.

איך זה עובד?

כששולחים בקשה לאימות מספר טלפון, Firebase PNV:

  1. בודקים אם המכשיר של המשתמש וספק הסלולר שלו נתמכים.

  2. קבלת הסכמה מהמשתמש לשיתוף מספר הטלפון שלו עם האפליקציה שלכם.

  3. האימות מתבצע מול ספק הסלולר שמשויך לכרטיס ה-SIM כדי לקבל את מספר הטלפון המאומת.

  4. מחזירה לאפליקציה אסימון חתום שמכיל את מספר הטלפון המאומת, בדרך כלל תוך שנייה עד שלוש שניות מהרגע שהמשתמש הביע הסכמה.

אחרי אימות החתימה של האסימון הזה, לאפליקציה שלכם יש עכשיו את מספר הטלפון המאומת של המשתמש. אפשר גם להשתמש בטוקן הזה כחלק מתהליך כניסה שמבוסס על מספר טלפון, למשל באמצעות Firebase Authentication או קצה עורפי משלכם לאימות.

נתיב ההטמעה

הגדרת פרויקט Firebase במסוף Firebase, משלימים את שלבי ההצטרפות כדי להפעיל את החיוב ואת Firebase Phone Number Verification API בפרויקט Firebase.
התקנה של ה-SDK והפעלה שלו מתקינים את Firebase PNV SDK לפלטפורמה של האפליקציה. כדי להשתמש ב-SDK, צריך להשלים בהצלחה את אימות המותג ב-OAuth.
עיצוב מסך הסבר (מומלץ) לפני הפעלת ממשק המשתמש הרשמי לבקשת הסכמה מהמשתמש, צריך להסביר לו שהוא צריך לבחור כרטיס SIM כדי לאחזר את המספר, ושהשיטה הזו מהירה ומאובטחת יותר מסיסמאות חד-פעמיות ב-SMS. כך נמנע בלבול ונלמד את המשתמשים על תהליך ה-Phone Number Verification החדש.
בדיקת התאימות של המכשיר וספק הסלולר (מומלץ) כשמפעילים את האפליקציה, משתמשים ב-SDK של Firebase PNV כדי לבדוק שהמכשיר וספק הסלולר שלו תואמים ל-Firebase PNV. אם הוא תואם, מציגים את מסך ההסבר ומבקשים הסכמה. אם לא, צריך להשתמש בשיטה הקודמת לאימות מספר הטלפון, כמו SMS.
בקשת מספר הטלפון המאומת משתמשים ב-Firebase PNV SDK כדי לשלוח לספק הסלולרי בקשה לקבלת מספר הטלפון המאומת של המכשיר. הפעולה הזו מפעילה את תהליך קבלת ההסכמה מהמשתמש, ומסך ההסבר עוזר למשתמש להשלים את התהליך.
אימות של טוקן התשובה בתגובה משירות Firebase PNV, מקבלים אסימון חתום שאפשר לשלוח לשרת העורפי של האפליקציה. בצד השרת, מאמתים את החתימה של הטוקן. אם החתימה תקפה, האסימון מכיל את מספר הטלפון המאומת של המכשיר.

השלבים הבאים

  • במדריך תחילת העבודה ב-Android מוסבר איך לבדוק את Firebase PNV באפליקציית Android באמצעות מצב בדיקה ללא כרטיס SIM.
  • אפשר לנסות את ה-Codelab, שבו מוסבר איך לשלב את Firebase PNV באפליקציית Android, שלב אחר שלב.