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

  • يقوم الأمر 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 ، وهي الافتراضية للمشاريع الجديدة.

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

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 .
مفتاح التجزئة المفتاح المستخدم لتجزئة كلمات المرور.
مطلوب لخوارزميات SCRYPT و HMAC_SHA512 و HMAC_SHA256 و HMAC_SHA1 و HMAC_MD5 . يجب تنسيق هذه الوسيطة كسلسلة مشفرة بـ base64 .
فاصل الملح فاصل الملح الذي سيتم إلحاقه بالملح عند التحقق من كلمة المرور.
اختياري لجميع الخوارزميات. يجب تنسيق هذه الوسيطة كسلسلة مشفرة بـ base64 .
جولات عدد الجولات المستخدمة لتجزئة كلمات المرور.
مطلوب لخوارزميات SCRYPT و MD5 و SHA512 و SHA256 و SHA1 و PBKDF_SHA1 و PBKDF2_SHA256 .
تكلفة الذاكرة تمثل هذه المعلمة إما تكلفة الذاكرة المطلوبة لخوارزمية SCRYPT أو تكلفة وحدة المعالجة المركزية/الذاكرة المطلوبة لخوارزمية STANDARD_SCRYPT .
الموازاة توازي خوارزمية التجزئة.
مطلوب لخوارزمية STANDARD_SCRYPT .
مقاس الكتله حجم الكتلة (عادةً 8) لخوارزمية التجزئة.
مطلوب لخوارزمية STANDARD_SCRYPT .
dk-لين طول المفتاح المشتق لخوارزمية التجزئة.
مطلوب لخوارزمية 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
حدود
account_file ملف CSV أو JSON المراد التصدير إليه. انظر تنسيق الملف .
تنسيق الملف خياري. تنسيق الملف المراد تصديره: إما CSV أو JSON.
إذا كان اسم الملف المحدد في معلمة account_file ينتهي بـ .csv أو .json ، فسيتم استخدام هذا التنسيق ويتم تجاهل هذه المعلمة.

تنسيق الملف

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

CSV

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

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