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

مصادقة:استيراد

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
المَعلمات
ملف_الحساب ملف CSV أو JSON الذي يحتوي على حسابات المستخدمين المطلوب استيرادها. راجِع تنسيق الملف.
تجزئة algo الخوارزمية المستخدمة لتجزئة كلمات المرور في ملف حساب المستخدم.
هذا الإذن مطلوب لاستيراد الحسابات التي تتضمّن حقول كلمات مرور. إحدى القيم التالية: 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.
الجولات عدد الجولات المستخدمة لتجزئة كلمات المرور.
مطلوبة للخوارزميات SCRYPT وMD5 وSHA512 وSHA256 وSHA1 وPBKDF_SHA1 وPBKDF2_SHA256.
تكلفة إدارة الأجهزة الجوّالة للمؤسسات (MMM) تمثّل هذه المَعلمة إمّا تكلفة الذاكرة المطلوبة لخوارزمية SCRYPT أو تكلفة وحدة المعالجة المركزية (CPU)/الذاكرة المطلوبة لخوارزمية STANDARD_SCRYPT.
موازاة موازاة خوارزمية التجزئة.
مطلوبة لخوارزمية 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.

تصدير المصادقة

firebase auth:export ACCOUNT_FILE --format=FILE_FORMAT
المَعلمات
ملف_الحساب ملف CSV أو JSON المطلوب التصدير إليه. راجِع تنسيق الملف.
تنسيق_الملف اختياري. تنسيق الملف المطلوب تصديره: إما CSV أو JSON.
إذا كان اسم الملف المحدّد في المعلَمة account_file ينتهي بـ .csv أو .json، يتم استخدام هذا التنسيق ويتم تجاهل هذه المَعلمة.

تنسيق الملف

يمكن تنسيق ملف حساب المستخدم بتنسيق CSV أو JSON.

CSV

يكون ملف حساب مستخدم CSV بالتنسيق التالي:

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