אתם יכולים להשתמש ב-Firebase Authentication כדי לאפשר למשתמשים להיכנס לאפליקציה שלכם באמצעות שיטה אחת או יותר לכניסה, כולל כניסה באמצעות כתובת אימייל וסיסמה, וספקי זהויות מאוחדים כמו כניסה באמצעות חשבון Google וכניסה באמצעות Facebook. במדריך הזה נסביר איך להתחיל להשתמש ב-Firebase Authentication. נראה לכם איך להוסיף לאפליקציה אפשרות כניסה באמצעות כתובת אימייל וסיסמה.
הוספה ואתחול של Authentication SDK
אם עדיין לא עשיתם זאת, תצטרכו להתקין את Firebase JS SDK ולהפעיל את Firebase.
מוסיפים את Firebase Authentication JS SDK ומפעילים את 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 של Authentication בארכיטקטורת REST לבדיקה לא אינטראקטיבית.
מדריך מפורט זמין במאמר חיבור האפליקציה לאמולטור של 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 // ... } });
השלבים הבאים
איך מוסיפים תמיכה בספקי זהויות אחרים ובחשבונות אורחים אנונימיים