auth:Import ו-auth:export

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

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

פרמטרים של גיבוב (hash) של סיסמאות

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

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

הערכים האלה הם רגישים, לכן חשוב להפעיל אותם בזהירות. ברוב הפרויקטים ב-Firebase נעשה שימוש ב-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) האלגוריתם שמשמש לגבב סיסמאות בקובץ של חשבון המשתמש.
חובה כדי לייבא חשבונות עם שדות סיסמה. אחד מהערכים האלה: 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.
מפריד מלח מפריד מלח שיצורף ל-salt כשמאמתים את הסיסמה.
אופציונלי לכל האלגוריתמים. הארגומנט הזה צריך להיות בפורמט של מחרוזת base64.
rounds מספר הסיבובים ששימשו לגיבוב סיסמאות.
חובה לאלגוריתמים SCRYPT, MD5, SHA512, SHA256, SHA1, PBKDF_SHA1 ו-PBKDF2_SHA256.
mem-cost הפרמטר הזה מייצג את עלות הזיכרון הנדרשת לאלגוריתם SCRYPT או את עלות המעבד (CPU)/הזיכרון שנדרשת עבור האלגוריתם STANDARD_SCRYPT.
טעינה במקביל ביצוע מקביל של אלגוריתם הגיבוב.
נדרש לאלגוריתם STANDARD_SCRYPT.
block-size גודל הבלוק (בדרך כלל הוא 8) של אלגוריתם הגיבוב.
נדרש לאלגוריתם STANDARD_SCRYPT.
dk-len אורך המפתח שנגזר מאלגוריתם הגיבוב.
נדרש לאלגוריתם STANDARD_SCRYPT.
סדר קלט-גיבוב סדר הסיסמה וה-salt.
הערכים האפשריים הם 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 מחרוזת חובה
המזהה הזה צריך להיות ייחודי מכל החשבונות בפרויקטים שלך ב-Firebase. אם תייבאו חשבון עם UID שכבר קיים, החשבון יוחלף.
2 אימייל מחרוזת אופציונלי
3 כתובת האימייל אומתה ערך בוליאני אופציונלי
4 גיבוב (hash) של סיסמה מחרוזת אופציונלי
מחרוזת בקידוד base64. בשדה הזה צריך להיות למבצע הקריאה החוזרת את התפקיד עריכה או בעלים.
5 מלח סיסמה מחרוזת אופציונלי
מחרוזת בקידוד base64. בשדה הזה צריך להיות למבצע הקריאה החוזרת את התפקיד עריכה או בעלים.
6 שם מחרוזת אופציונלי
7 כתובת URL של תמונה מחרוזת אופציונלי
8 מזהה Google מחרוזת אופציונלי
9 אימייל של Google מחרוזת אופציונלי
10 שם תצוגה ב-Google מחרוזת אופציונלי
11 כתובת URL של Google Photos מחרוזת אופציונלי
12 מזהה Facebook מחרוזת אופציונלי
13 כתובת האימייל של Facebook מחרוזת אופציונלי
14 שם תצוגה ב-Facebook מחרוזת אופציונלי
15 כתובת אתר של תמונת Facebook מחרוזת אופציונלי
16 מזהה Twitter מחרוזת אופציונלי
17 אימייל ב-Twitter מחרוזת אופציונלי
18 שם תצוגה ב-Twitter מחרוזת אופציונלי
19 כתובת URL של תמונה ב-Twitter מחרוזת אופציונלי
20 מזהה GitHub מחרוזת אופציונלי
21 אימייל ב-GitHub מחרוזת אופציונלי
22 השם המוצג של GitHub מחרוזת אופציונלי
23 כתובת URL של תמונת GitHub מחרוזת אופציונלי
24 זמן היצירה של משתמשים ארוך אופציונלי
חותמת זמן של Epoch Unix באלפיות השנייה.
25 שעת הכניסה האחרונה ארוך אופציונלי
חותמת זמן של Epoch Unix באלפיות השנייה.
26 מספר טלפון מחרוזת אופציונלי

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

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

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