يستورد الأمر
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