Google is committed to advancing racial equity for Black communities. See how.
דף זה תורגם על ידי Cloud Translation API.
Switch to English

אמת באמצעות כניסה לפייסבוק עם JavaScript

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

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

  1. הוסף את Firebase לפרויקט JavaScript שלך .
  2. באתר פייסבוק למפתחים , קבלו את מזהה האפליקציה וסוד האפליקציה לאפליקציה שלכם.
  3. אפשר כניסה לפייסבוק:
    1. במסוף Firebase , פתח את החלק Auth .
    2. בכרטיסיה שיטת כניסה , הפעל את שיטת הכניסה לפייסבוק וציין את מזהה האפליקציה וסוד האפליקציה שקיבלת מפייסבוק.
    3. לאחר מכן, וודא ש- URI my-app-12345.firebaseapp.com/__/auth/handler OAuth שלך (למשל my-app-12345.firebaseapp.com/__/auth/handler ) מופיע כאחד מ- my-app-12345.firebaseapp.com/__/auth/handler OAuth בדף ההגדרות של אפליקציית פייסבוק שלך באתר Facebook עבור מפתחים במוצר. הגדרות> תצורת הכניסה לפייסבוק .

לטפל בזרימת הכניסה באמצעות SDK של Firebase

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

כדי לטפל בזרימת הכניסה עם Firebase JavaScript SDK, בצע את הצעדים הבאים:

  1. צור מופע של אובייקט ספק הפייסבוק:
    var provider = new firebase.auth.FacebookAuthProvider();
  2. אופציונלי : ציין טווחי OAuth 2.0 נוספים שברצונך לבקש מספק האימות. כדי להוסיף היקף, התקשר ל- addScope . לדוגמא:
    provider.addScope('user_birthday');
    עיין בתיעוד של ספק האימות .
  3. אופציונלי : כדי למקם את זרימת ה- OAuth של הספק לשפה המועדפת של המשתמש מבלי להעביר במפורש את פרמטרי ה- OAuth המותאמים אישית, עדכן את קוד השפה במופע Auth לפני שתתחיל את זרימת OAuth. לדוגמא:
    firebase.auth().languageCode = 'it';
    // To apply the default browser preference instead of explicitly setting it.
    // firebase.auth().useDeviceLanguage();
  4. אופציונלי : ציין פרמטרים נוספים של ספק OAuth מותאם אישית שברצונך לשלוח עם בקשת OAuth. כדי להוסיף פרמטר מותאם אישית, התקשר ל- setCustomParameters לספק האתחול עם אובייקט המכיל את המפתח כמפורט בתיעוד ספק ה- OAuth והערך המתאים. לדוגמא:
    provider.setCustomParameters({
      'display': 'popup'
    });
    נדרשים שמירת פרמטרי OAuth אינם מורשים ויתעלם מהם. לפרטים נוספים, עיין בהפניה של ספק האימות .
  5. אמת באמצעות Firebase באמצעות אובייקט ספק הפייסבוק. באפשרותך להנחות את המשתמשים שלך להיכנס עם חשבונות הפייסבוק שלהם על ידי פתיחת חלון קופץ או על ידי הפניה מחדש לדף הכניסה. שיטת ההפניה עדיפה במכשירים ניידים.
    • כדי להיכנס באמצעות חלון קופץ, התקשר ל- signInWithPopup :
      firebase
        .auth()
        .signInWithPopup(provider)
        .then((result) => {
          /** @type {firebase.auth.OAuthCredential} */
          var credential = result.credential;
      
          // The signed-in user info.
          var user = result.user;
      
          // This gives you a Facebook Access Token. You can use it to access the Facebook API.
          var accessToken = credential.accessToken;
      
          // ...
        })
        .catch((error) => {
          // Handle Errors here.
          var errorCode = error.code;
          var errorMessage = error.message;
          // The email of the user's account used.
          var email = error.email;
          // The firebase.auth.AuthCredential type that was used.
          var credential = error.credential;
      
          // ...
        });
      שימו לב שתוכלו לאחזר את אסימון ה- OAuth של ספק הפייסבוק שבו ניתן להשתמש כדי לאסוף נתונים נוספים באמצעות ממשקי ה- API של פייסבוק.

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

    • כדי להיכנס על ידי הפניה לדף הכניסה, התקשר ל- signInWithRedirect :
      firebase.auth().signInWithRedirect(provider);
      ואז תוכל גם לאחזר את אסימון ה- OAuth של ספק פייסבוק על ידי קריאה ל- getRedirectResult כאשר העמוד שלך נטען:
      firebase.auth()
        .getRedirectResult()
        .then((result) => {
          if (result.credential) {
            /** @type {firebase.auth.OAuthCredential} */
            var credential = result.credential;
      
            // This gives you a Facebook Access Token. You can use it to access the Facebook API.
            var token = credential.accessToken;
            // ...
          }
          // The signed-in user info.
          var user = result.user;
        }).catch((error) => {
          // Handle Errors here.
          var errorCode = error.code;
          var errorMessage = error.message;
          // The email of the user's account used.
          var email = error.email;
          // The firebase.auth.AuthCredential type that was used.
          var credential = error.credential;
          // ...
        });
      זה גם המקום שבו אתה יכול לתפוס ולטפל בשגיאות. לקבלת רשימה של קודי שגיאה, עיין במסמכי ההפניה לאימות .

אמת באמצעות Firebase בתוסף Chrome

אם אתה בונה אפליקציית תוספים ל- Chrome, עליך להוסיף את מזהה התוסף שלך ל- Chrome:

  1. פתח את הפרויקט שלך במסוף Firebase .
  2. במקטע אימות , פתח את דף שיטת הכניסה .
  3. הוסף URI כמו הבא לרשימת הדומיינים המורשים:
    chrome-extension://CHROME_EXTENSION_ID

רק פעולות קופצות ( signInWithPopup ו- linkWithPopup ) זמינות linkWithPopup Chrome, שכן סיומות Chrome אינן יכולות להשתמש בהפניות מחדש של HTTP. עליך להתקשר לשיטות אלה מתסריט רקע ולא מקופץ לפעולה בדפדפן, מכיוון שקופץ האימות יבטל את חלון הקופץ של פעולת הדפדפן.

בקובץ המניפסט של תוסף Chrome שלך ​​הקפד להוסיף את כתובת האתר https://apis.google.com לרשימת ההיתרים content_security_policy .

הצעדים הבאים

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

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

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

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

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

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