בצע אימות עם Firebase באמצעות חשבונות מבוססי סיסמה באמצעות Javascript

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

לפני שאתה מתחיל

  1. הוסף את Firebase לפרויקט JavaScript שלך .
  2. אם עדיין לא חיברת את האפליקציה שלך לפרויקט Firebase שלך, עשה זאת ממסוף Firebase .
  3. אפשר כניסה לאימייל/סיסמה:
    1. במסוף Firebase , פתח את הקטע Auth .
    2. בכרטיסייה שיטת כניסה , הפעל את שיטת הכניסה לדוא"ל/סיסמה ולחץ על שמור .

צור חשבון מבוסס סיסמה

כדי ליצור חשבון משתמש חדש עם סיסמה, בצע את השלבים הבאים בדף ההרשמה של האפליקציה שלך:

  1. כאשר משתמש חדש נרשם באמצעות טופס ההרשמה של האפליקציה שלך, השלם את כל שלבי אימות החשבון החדשים שהאפליקציה שלך דורשת, כגון אימות שהסיסמה של החשבון החדש הוקלדה כהלכה ועומדת בדרישות המורכבות שלך.
  2. צור חשבון חדש על ידי העברת כתובת הדוא"ל והסיסמה של המשתמש החדש ל- createUserWithEmailAndPassword :

    Web modular API

    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 namespaced API

    firebase.auth().createUserWithEmailAndPassword(email, password)
      .then((userCredential) => {
        // Signed in 
        var user = userCredential.user;
        // ...
      })
      .catch((error) => {
        var errorCode = error.code;
        var errorMessage = error.message;
        // ..
      });
    אם החשבון החדש נוצר, המשתמש ייכנס אוטומטית. עיין בסעיף השלבים הבאים למטה כדי לקבל את פרטי המשתמש המחוברים.

    זה גם המקום שבו אתה יכול לתפוס ולטפל בשגיאות. לקבלת רשימה של קודי שגיאה, עיין ב- Auth Reference Docs .

היכנס למשתמש עם כתובת דוא"ל וסיסמה

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

  1. כאשר משתמש נכנס לאפליקציה שלך, העבר את כתובת האימייל והסיסמה של המשתמש ל- signInWithEmailAndPassword :

    Web modular API

    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 namespaced API

    firebase.auth().signInWithEmailAndPassword(email, password)
      .then((userCredential) => {
        // Signed in
        var user = userCredential.user;
        // ...
      })
      .catch((error) => {
        var errorCode = error.code;
        var errorMessage = error.message;
      });
    עיין בסעיף השלבים הבאים למטה כדי לקבל את פרטי המשתמש המחוברים.

    זה גם המקום שבו אתה יכול לתפוס ולטפל בשגיאות. לקבלת רשימה של קודי שגיאה, עיין ב- Auth Reference Docs .

מומלץ: הפעל הגנה על ספירת דוא"ל

כמה שיטות אימות Firebase שלוקחות כתובות דוא"ל כפרמטרים גוררות שגיאות ספציפיות אם כתובת הדוא"ל אינה רשומה כאשר היא חייבת להירשם (לדוגמה, בעת כניסה עם כתובת דוא"ל וסיסמה), או נרשמה כאשר היא חייבת להיות ללא שימוש (לדוגמה, בעת שינוי כתובת דוא"ל של משתמש). למרות שזה יכול להיות מועיל להצעת תרופות ספציפיות למשתמשים, זה יכול גם להיות מנוצל לרעה על ידי שחקנים זדוניים כדי לגלות את כתובות האימייל שנרשמו על ידי המשתמשים שלך.

כדי להפחית את הסיכון הזה, אנו ממליצים להפעיל הגנה על ספירת דוא"ל עבור הפרויקט שלך באמצעות הכלי Google Cloud gcloud . שים לב שהפעלת תכונה זו משנה את התנהגות דיווח השגיאות של Firebase Authentication: ודא שהאפליקציה שלך לא מסתמכת על השגיאות הספציפיות יותר.

הצעדים הבאים

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

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

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

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

כדי לצאת ממשתמש, התקשר ל- signOut :

Web modular API

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

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

Web namespaced API

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