אתם יכולים לשלב את Firebase Authentication עם מערכת אימות בהתאמה אישית על ידי שינוי שרת האימות כך שיפיק אסימונים חתומים בהתאמה אישית כשמשתמש נכנס לחשבון. האפליקציה מקבלת את האסימון הזה ומשתמשת בו כדי לבצע אימות ב-Firebase.
לפני שמתחילים
- מוסיפים את Firebase לפרויקט ב-JavaScript.
- מקבלים את מפתחות השרת של הפרויקט:
-
במסוף Firebase, עוברים אל
Settings > הכרטיסייה Service accounts. - בחלק התחתון של הקטע SDK של Firebase לאדמינים, לוחצים על Generate New Private Key (יצירת מפתח פרטי חדש).
- זוג המפתחות הציבורי/פרטי של חשבון השירות החדש נשמר אוטומטית במחשב שלכם. מעתיקים את הקובץ הזה לשרת האימות.
-
במסוף Firebase, עוברים אל
אימות באמצעות Firebase
- כשמשתמשים נכנסים לאפליקציה, פרטי הכניסה שלהם (למשל, שם המשתמש והסיסמה) נשלחים לשרת האימות. השרת בודק את פרטי הכניסה ומחזיר אסימון מותאם אישית אם הם תקינים.
- אחרי שמקבלים את האסימון המותאם אישית משרת האימות, מעבירים אותו אל
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. });