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

אמת באמצעות כניסה עם Google באמצעות JavaScript

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

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

  1. הוסף את Firebase לפרויקט JavaScript שלך .
  2. הפעל כניסה של Google במסוף Firebase:
    1. במסוף Firebase , פתח את החלק Auth .
    2. בכרטיסיה שיטת כניסה , הפעל את שיטת הכניסה של Google ולחץ על שמור .

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

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

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

  1. צור מופע של אובייקט הספק של Google:
    var provider = new firebase.auth.GoogleAuthProvider();
  2. אופציונלי : ציין טווחי OAuth 2.0 נוספים שברצונך לבקש מספק האימות. כדי להוסיף היקף, התקשר ל- addScope . לדוגמא:
    provider.addScope('https://www.googleapis.com/auth/contacts.readonly');
    עיין בתיעוד של ספק האימות .
  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({
      'login_hint': 'user@example.com'
    });
    נדרשים שמירת פרמטרי OAuth אינם מורשים ויתעלם מהם. לפרטים נוספים, עיין בהפניה של ספק האימות .
  5. אמת באמצעות Firebase באמצעות אובייקט הספק של Google. באפשרותך להנחות את המשתמשים שלך להיכנס באמצעות חשבונות Google שלהם על ידי פתיחת חלון קופץ או על ידי הפניה מחדש לדף הכניסה. שיטת ההפניה עדיפה במכשירים ניידים.
    • כדי להיכנס באמצעות חלון קופץ, התקשר ל- signInWithPopup :
      firebase.auth()
        .signInWithPopup(provider)
        .then((result) => {
          /** @type {firebase.auth.OAuthCredential} */
          var credential = result.credential;
      
          // This gives you a Google Access Token. You can use it to access the Google 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;
          // ...
        });
      שימו לב שתוכלו לאחזר את אסימון ה- OAuth של ספקית Google אשר באמצעותו ניתן לאסוף נתונים נוספים באמצעות ממשקי ה- API של Google.

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

    • כדי להיכנס על ידי הפניה לדף הכניסה, התקשר ל- signInWithRedirect :
      firebase.auth().signInWithRedirect(provider);
      לאחר מכן, תוכל גם לאחזר את אסימון ה- OAuth של ספק Google על ידי קריאה ל- getRedirectResult כאשר העמוד שלך נטען:
      firebase.auth()
        .getRedirectResult()
        .then((result) => {
          if (result.credential) {
            /** @type {firebase.auth.OAuthCredential} */
            var credential = result.credential;
      
            // This gives you a Google Access Token. You can use it to access the Google 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.
});