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

השלבים הבאים

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