auth:Import ו-auth:export

  • הפקודה auth:import מייבאת חשבונות משתמשים ל-Firebase פרויקטים.

  • הפקודה auth:export מייצאת חשבונות משתמשים ל-JSON, קובצי CSV.

פרמטרים של גיבוב סיסמה

כדי לקבוע את הפרמטרים לגיבוב של סיסמה שמשמשים בפרויקט שלכם, צריך לעבור אל אימות > הקטע משתמשים במסוף Firebase ולוחצים על על סמל שלוש הנקודות שמעל רשימת המשתמשים. תופיע תיבת דו-שיח עם רשימה בפרמטרים לגיבוב של סיסמה שניתן להשתמש בהם עם auth:import ו-auth:export פקודות:

hash_config {
  algorithm: SCRYPT,
  base64_signer_key: <...sensitive...>,
  base64_salt_separator: <...sensitive...>,
  rounds: 8,
  mem_cost: 14,
}

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

auth:Import

firebase auth:import ACCOUNT_FILE    \
    --hash-algo=HASH_ALGORITHM         \
    --hash-key=KEY                     \
    --salt-separator=SALT_SEPARATOR    \
    --rounds=ROUNDS                    \
    --mem-cost=MEM_COST                \
    --parallelization=PARALLELIZATION  \
    --block-size=BLOCK_SIZE            \
    --dk-len=DK_LEN                    \
    --hash-input-order=HASH_INPUT_ORDER
פרמטרים
account_file קובץ ה-CSV או ה-JSON שמכיל את חשבונות המשתמשים שרוצים לייבא. צפייה פורמט הקובץ.
hash-algo האלגוריתם שמשמש לגיבוב (hash) של סיסמאות בקובץ של חשבון המשתמש.
נדרש כדי לייבא חשבונות עם שדות סיסמה. אחד מהערכים הבאים: BCRYPT, SCRYPT, STANDARD_SCRYPT HMAC_SHA512, HMAC_SHA256, HMAC_SHA1, HMAC_MD5, MD5, SHA512, SHA256, SHA1, PBKDF_SHA1, PBKDF2_SHA256.
מפתח גיבוב (hash) מפתח המשמש לגיבוב של סיסמאות.
נדרש עבור SCRYPT, HMAC_SHA512, HMAC_SHA256, אלגוריתמים HMAC_SHA1 ו-HMAC_MD5. הארגומנט הזה חייב להיות בפורמט בקידוד base64 String.
salt-separator מפריד מלח שיתווסף ל-salt לצורך אימות הסיסמה.
אופציונלי לכל האלגוריתמים. הארגומנט הזה חייב להיות בפורמט מחרוזת בקידוד base64.
סבבים מספר הסבבים המשמשים לגיבוב של סיסמאות.
נדרש עבור SCRYPT, MD5, SHA512, SHA256, SHA1, PBKDF_SHA1 וגם PBKDF2_SHA256 אלגוריתמים.
ממ-עלות הפרמטר הזה מייצג את עלות הזיכרון שנדרשת עבור האלגוריתם SCRYPT או עלות המעבד (CPU)/הזיכרון שנדרשת לצורך האלגוריתם STANDARD_SCRYPT.
טעינה במקביל המקבילה של אלגוריתם הגיבוב (hashing).
חובה לאלגוריתם STANDARD_SCRYPT.
גודל בלוק גודל הבלוק (בדרך כלל 8) של אלגוריתם הגיבוב.
חובה לאלגוריתם STANDARD_SCRYPT.
dk-len אורך המפתח שנגזר מהאלגוריתם של הגיבוב.
חובה לאלגוריתם STANDARD_SCRYPT.
גיבוב-קלט-סידור הסדר של הסיסמה ונתוני המלח.
הערכים האפשריים הם SALT_FIRST ו-PASSWORD_FIRST. הדגל הזה חל על SHA512,‏ SHA256,‏ SHA1,‏ MD5,‏ HMAC_SHA512,‏ HMAC_SHA256,‏ HMAC_SHA1 ו-HMAC_MD5.

auth:export

firebase auth:export ACCOUNT_FILE --format=FILE_FORMAT
פרמטרים
account_file קובץ ה-CSV או ה-JSON שאליו רוצים לייצא. להצגת קובץ .
file_format אופציונלי. פורמט הקובץ לייצוא: CSV או JSON.
אם שם הקובץ שצוין בפרמטר account_file מסתיים .csv או .json, נעשה שימוש בפורמט הזה המערכת מתעלמת מהפרמטר הזה.

תבנית קובץ

קובץ חשבון המשתמש יכול להיות בפורמט CSV או JSON.

CSV

קובץ CSV של חשבון משתמש הוא בפורמט הבא:

מספר עמודה תיאור השדה סוג שדה תגובות
1 UID String חובה
המזהה הזה צריך להיות ייחודי לכל החשבונות בפרויקטים שלכם ב-Firebase. אם תייבאו חשבון עם UID שכבר קיים, החשבון יוחלף.
2 אימייל String אופציונלי
3 כתובת דוא"ל אומתה בוליאני אופציונלי
4 גיבוב (hash) של סיסמה String אופציונלי
מחרוזת בקידוד base64. בשדה הזה צריך להיות למבצע הקריאה החוזרת תפקיד עריכה או בעלים.
5 פיסת מידע לסיסמה String אופציונלי
מחרוזת בקידוד base64. כדי להשתמש בשדה הזה, למבצע הקריאה החוזרת צריכה להיות הרשאת עריכה או הרשאת בעלים.
6 שם String אופציונלי
7 כתובת URL של תמונה String אופציונלי
8 מזהה Google String אופציונלי
9 כתובת האימייל של Google String אופציונלי
10 שם תצוגה ב-Google String אופציונלי
11 כתובת אתר של תמונה ב-Google Photos String אופציונלי
12 מזהה Facebook String אופציונלי
13 כתובת אימייל ב-Facebook String אופציונלי
14 שם תצוגה ב-Facebook String אופציונלי
15 כתובת URL של תמונה ב-Facebook String אופציונלי
16 מזהה Twitter String אופציונלי
17 כתובת אימייל ב-Twitter String אופציונלי
18 שם תצוגה בטוויטר String אופציונלי
19 כתובת URL של תמונה ב-Twitter String אופציונלי
20 מזהה GitHub String אופציונלי
21 כתובת אימייל מ-GitHub String אופציונלי
22 שם תצוגה ב-GitHub String אופציונלי
23 כתובת URL של תמונה ב-GitHub String אופציונלי
24 מועד היצירה של משתמש ארוך אופציונלי
חותמת זמן של Epoch Unix באלפיות השנייה.
25 שעת הכניסה האחרונה ארוך אופציונלי
חותמת זמן של Epoch Unix באלפיות השנייה.
26 מספר טלפון String אופציונלי

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

לדוגמה, השורה הבאה מייצגת חשבון משתמש:

111, test@test.org, false, Jlf7onfLbzqPNFP/1pqhx6fQF/w=, c2FsdC0x, Test User, http://photo.com/123, , , , , 123, test@test.org, Test FB User, http://photo.com/456, , , , , , , , , 1486324027000, 1486324027000

JSON

קובץ JSON של חשבון משתמש מופיע בפורמט הבא:

{
  "users": [
    {
      "localId": UID,
      "email": EMAIL_ADDRESS
      "emailVerified": EMAIL_VERIFIED,
      "passwordHash": BASE64_ENCODED_PASSWORD_HASH,
      "salt": BASE64_ENCODED_PASSWORD_SALT,
      "displayName": NAME,
      "photoUrl": PHOTO_URL,
      "createdAt": CREATED_AT_IN_MILLIS,
      "lastSignedInAt": LAST_SIGNEDIN_AT_IN_MILLIS,
      "phoneNumber": PHONE_NUMBER
      "providerUserInfo": [
        {
          "providerId": PROVIDER_ID,
          "rawId": PROVIDER_UID,
          "email":  PROVIDER_EMAIL,
          "displayName": PROVIDER_NAME,
          "photoUrl": PROVIDER_PHOTO_URL
        },
        ...
      ]
    },
    ...
  ]
}

מחליפים את PROVIDER_ID באחד מהערכים הבאים:

  • google.com
  • facebook.com
  • github.com
  • twitter.com