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، وهو إصدار مُعدَّل من خوارزمية تجزئة التشفير، وهو الإصدار التلقائي للمشروعات الجديدة.

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 الذي يحتوي على حسابات المستخدمين المطلوب استيرادها. راجِع تنسيق الملف.
تجزئة متوافقة يشير ذلك المصطلح إلى الخوارزمية المستخدَمة لتجزئة كلمات المرور في ملف حساب المستخدم.
مطلوب لاستيراد الحسابات التي تحتوي على حقول كلمات مرور. إحدى القيم التالية: BCRYPT أو SCRYPT أو STANDARD_SCRYPT أو HMAC_SHA512 أو HMAC_SHA256 أو HMAC_SHA1 أو HMAC_MD5 أو MD5 أو SHA512 أو SHA256 أو SHA1 أو PBKDF_SHA1 أو PBKDF2_SHA256.
مفتاح التجزئة المفتاح المستخدَم لتجزئة كلمات المرور.
مطلوبة للخوارزميات SCRYPT وHMAC_SHA512 وHMAC_SHA256 وHMAC_SHA1 وHMAC_MD5. يجب تنسيق هذه الوسيطة كسلسلة ترميز base64.
فاصل الملح فاصل القيم العشوائية الذي سيتم إلحاقه بالقيمة العشوائية عند التحقُّق من كلمة المرور.
اختيارية لجميع الخوارزميات. يجب تنسيق هذه الوسيطة كسلسلة ترميز 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_FIRST وPASSWORD_FIRST. تنطبق هذه العلامة على SHA512 وSHA256 وSHA1 وMD5 وHMAC_SHA512 وHMAC_SHA256 وHMAC_SHA1 وHMAC_MD5.

auth:تصدير

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 الرقم التعريفي الفريد سلسلة مطلوب
يجب أن يكون هذا المعرّف فريدًا بين كل الحسابات في مشاريع Firebase. في حال استيراد حساب يحمل معرِّفًا فريدًا، سيتم استبداله.
2 البريد الإلكتروني سلسلة اختياري
3 تم التحقق من البريد الالكتروني منطقي اختياري
4 تجزئة كلمة المرور سلسلة اختياري
سلسلة بترميز base64. يتطلّب هذا الحقل أن يكون لدى المتصل دور المحرِّر أو المالك.
5 القيمة العشوائية لكلمات المرور سلسلة اختياري
سلسلة بترميز base64. يتطلّب هذا الحقل أن يكون لدى المتصل دور المحرِّر أو المالك.
6 الاسم سلسلة اختياري
7 عنوان URL للصورة سلسلة اختياري
8 معرّف Google سلسلة اختياري
9 البريد الإلكتروني من Google سلسلة اختياري
10 الاسم المعروض على Google سلسلة اختياري
11 عنوان URL لصورة Google سلسلة اختياري
12 معرّف Facebook سلسلة اختياري
13 البريد الإلكتروني على Facebook سلسلة اختياري
14 الاسم المعروض على Facebook سلسلة اختياري
15 عنوان URL لصورة 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