אפשר להשתמש ב-Firebase Authentication כדי לאפשר למשתמשים להיכנס לאפליקציה באמצעות שיטה אחת או יותר, כולל כניסה באמצעות כתובת אימייל וסיסמה, וספקי זהויות מאוחדים כמו 'כניסה באמצעות חשבון Google' ו'כניסה באמצעות חשבון Facebook'. במדריך הזה נסביר איך מתחילים להשתמש ב-Firebase Authentication, ונראה איך מוסיפים לאפליקציה כניסה באמצעות כתובת אימייל וסיסמה.
הוספה ואתחול של ה-SDK של Authentication
אם עדיין לא עשיתם זאת, מתקינים את Firebase JS SDK ומפעילים את Firebase.
מוסיפים את ה-SDK של Firebase Authentication JS ומפעילים את Firebase Authentication:
Web
import { initializeApp } from "firebase/app";
import { getAuth } from "firebase/auth";
// TODO: Replace the following with your app's Firebase project configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
// ...
};
// Initialize Firebase
const app = initializeApp(firebaseConfig);
// Initialize Firebase Authentication and get a reference to the service
const auth = getAuth(app);
Web
import firebase from "firebase/compat/app";
import "firebase/compat/auth";
// TODO: Replace the following with your app's Firebase project configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
// ...
};
// Initialize Firebase
firebase.initializeApp(firebaseConfig);
// Initialize Firebase Authentication and get a reference to the service
const auth = firebase.auth();
(אופציונלי) יצירת אב טיפוס ובדיקה באמצעות Firebase Local Emulator Suite
לפני שנדבר על האופן שבו האפליקציה מאמתת משתמשים, נציג קבוצה של כלים שאפשר להשתמש בהם כדי ליצור אב טיפוס ולבדוק את הפונקציונליות של Authentication: Firebase Local Emulator Suite. אם אתם בוחרים בין שיטות אימות וספקים, מנסים מודלים שונים של נתונים עם נתונים ציבוריים ופרטיים באמצעות Authentication ו-Firebase Security Rules, או יוצרים אב טיפוס של עיצובים של ממשקי משתמש לכניסה, יכול להיות שעבודה מקומית בלי לפרוס שירותים פעילים תהיה רעיון מצוין.
אמולטור של Authentication הוא חלק מ-Local Emulator Suite, שמאפשר לאפליקציה שלכם לקיים אינטראקציה עם תוכן והגדרות של מסדי נתונים מועתקים, וגם עם משאבי הפרויקט המועתקים (פונקציות, מסדי נתונים אחרים וכללי אבטחה).
כדי להשתמש במהדמ של Authentication, צריך לבצע כמה שלבים פשוטים:
- הוספת שורת קוד להגדרות הבדיקה של האפליקציה כדי להתחבר למהדר.
- מריצים את
firebase emulators:start
ברמה הבסיסית של ספריית הפרויקט המקומית. - באמצעות ממשק המשתמש של Local Emulator Suite ליצירת אב טיפוס אינטראקטיבי, או באמצעות ה-API ל-REST של המהדר של Authentication לבדיקה לא אינטראקטיבית.
מדריך מפורט זמין במאמר חיבור האפליקציה לאמולטור Authentication. מידע נוסף זמין במבוא ל-Local Emulator Suite.
עכשיו נמשיך להסביר איך מאמתים משתמשים.
הרשמה של משתמשים חדשים
יוצרים טופס שמאפשר למשתמשים חדשים להירשם לאפליקציה באמצעות כתובת האימייל והסיסמה שלהם. כשמשתמש ממלא את הטופס, מאמתים את כתובת האימייל והסיסמה שהמשתמש סיפק, ומעבירים אותם לשיטה createUserWithEmailAndPassword
:
Web
import { getAuth, createUserWithEmailAndPassword } from "firebase/auth"; const auth = getAuth(); createUserWithEmailAndPassword(auth, email, password) .then((userCredential) => { // Signed up const user = userCredential.user; // ... }) .catch((error) => { const errorCode = error.code; const errorMessage = error.message; // .. });
Web
firebase.auth().createUserWithEmailAndPassword(email, password) .then((userCredential) => { // Signed in var user = userCredential.user; // ... }) .catch((error) => { var errorCode = error.code; var errorMessage = error.message; // .. });
כניסה של משתמשים קיימים
יוצרים טופס שמאפשר למשתמשים קיימים להיכנס באמצעות כתובת האימייל והסיסמה שלהם. כשמשתמש ממלא את הטופס, צריך להפעיל את השיטה signInWithEmailAndPassword
:
Web
import { getAuth, signInWithEmailAndPassword } from "firebase/auth"; const auth = getAuth(); signInWithEmailAndPassword(auth, email, password) .then((userCredential) => { // Signed in const user = userCredential.user; // ... }) .catch((error) => { const errorCode = error.code; const errorMessage = error.message; });
Web
firebase.auth().signInWithEmailAndPassword(email, password) .then((userCredential) => { // Signed in var user = userCredential.user; // ... }) .catch((error) => { var errorCode = error.code; var errorMessage = error.message; });
הגדרת משתמש למעקב אחרי מצב האימות וקבלת נתוני משתמשים
לכל אחד מהדפים באפליקציה שצריך לקבל מידע על המשתמש שנכנס לחשבון, צריך לצרף משתמש למעקב (observer) לאובייקט האימות ברמת האפליקציה. המשתמש הזה נקרא בכל פעם שמצב הכניסה של המשתמש משתנה.
מחברים את הצופה באמצעות השיטה onAuthStateChanged
. כשמשתמש נכנס לחשבון, אפשר לקבל מידע עליו במעקב.
Web
import { getAuth, onAuthStateChanged } from "firebase/auth"; const auth = getAuth(); onAuthStateChanged(auth, (user) => { if (user) { // User is signed in, see docs for a list of available properties // https://firebase.google.com/docs/reference/js/auth.user const uid = user.uid; // ... } else { // User is signed out // ... } });
Web
firebase.auth().onAuthStateChanged((user) => { if (user) { // User is signed in, see docs for a list of available properties // https://firebase.google.com/docs/reference/js/v8/firebase.User var uid = user.uid; // ... } else { // User is signed out // ... } });
השלבים הבאים
איך מוסיפים תמיכה בספקי זהויות אחרים ובחשבונות אורחים אנונימיים:
- כניסה באמצעות חשבון Google
- כניסה באמצעות חשבון Facebook
- כניסה באמצעות חשבון Twitter
- GitHub Login
- כניסה אנונימית