אימות עם Firebase ב-JavaScript באמצעות מערכת אימות מותאמת אישית

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

לפני שמתחילים

  1. מוסיפים את Firebase לפרויקט ב-JavaScript.
  2. מקבלים את מפתחות השרת של הפרויקט:
    1. במסוף Firebase, עוברים אל Settings > הכרטיסייה Service accounts.
    2. בחלק התחתון של הקטע SDK של Firebase לאדמינים, לוחצים על Generate New Private Key (יצירת מפתח פרטי חדש).
    3. זוג המפתחות הציבורי/פרטי של חשבון השירות החדש נשמר אוטומטית במחשב שלכם. מעתיקים את הקובץ הזה לשרת האימות.

אימות באמצעות Firebase

  1. כשמשתמשים נכנסים לאפליקציה, פרטי הכניסה שלהם (למשל, שם המשתמש והסיסמה) נשלחים לשרת האימות. השרת בודק את פרטי הכניסה ומחזיר אסימון מותאם אישית אם הם תקינים.
  2. אחרי שמקבלים את האסימון המותאם אישית משרת האימות, מעבירים אותו אל signInWithCustomToken כדי שהמשתמש יוכל להיכנס:

    Web

    import { getAuth, signInWithCustomToken } from "firebase/auth";
    
    const auth = getAuth();
    signInWithCustomToken(auth, token)
      .then((userCredential) => {
        // Signed in
        const user = userCredential.user;
        // ...
      })
      .catch((error) => {
        const errorCode = error.code;
        const errorMessage = error.message;
        // ...
      });

    Web

    firebase.auth().signInWithCustomToken(token)
      .then((userCredential) => {
        // Signed in
        var user = userCredential.user;
        // ...
      })
      .catch((error) => {
        var errorCode = error.code;
        var errorMessage = error.message;
        // ...
      });

השלבים הבאים

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

  • באפליקציות, הדרך המומלצת לדעת מה סטטוס האימות של המשתמש היא להגדיר אובייקט observer ב-Auth. אחרי כן תוכלו לקבל את פרטי הפרופיל הבסיסיים של המשתמש מאובייקט User. ניהול משתמשים

  • ב-Firebase Realtime Database וב-Cloud Storage Security Rules, אפשר לקבל את מזהה המשתמש הייחודי של המשתמש המחובר מהמשתנה auth, ולהשתמש בו כדי לקבוע לאילו נתונים משתמש יכול לגשת.

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

כדי להוציא משתמש מהחשבון, מתקשרים אל signOut:

Web

import { getAuth, signOut } from "firebase/auth";

const auth = getAuth();
signOut(auth).then(() => {
  // Sign-out successful.
}).catch((error) => {
  // An error happened.
});

Web

firebase.auth().signOut().then(() => {
  // Sign-out successful.
}).catch((error) => {
  // An error happened.
});