auth:import و auth:export

  • دستور auth:import حساب های کاربری را به پروژه های Firebase وارد می کند.

  • دستور auth:export حساب های کاربری را به فایل های JSON و CSV صادر می کند.

پارامترهای هش رمز عبور

برای تعیین پارامترهای هش رمز عبور مورد استفاده برای پروژه خود، به بخش Authentication > Users کنسول 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 ، که پیش‌فرض برای پروژه‌های جدید است.

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 PBKDF2_SHA256 SHA512 , SHA256 , SHA1 , PBKDF_SHA1 .
هش کلید کلید مورد استفاده برای هش رمزهای عبور
برای الگوریتم‌های SCRYPT ، HMAC_SHA512 ، HMAC_SHA256 ، HMAC_SHA1 ، و HMAC_MD5 مورد نیاز است. این آرگومان باید به عنوان یک رشته کدگذاری شده با base64 قالب بندی شود.
جدا کننده نمک جداکننده نمک که هنگام تأیید رمز عبور به salt اضافه می شود.
اختیاری برای همه الگوریتم ها این آرگومان باید به عنوان یک رشته کدگذاری شده با base64 قالب بندی شود.
دور تعداد دورهای استفاده شده برای هش رمزهای عبور.
برای الگوریتم‌های SCRYPT ، MD5 ، SHA512 ، SHA256 ، SHA1 ، PBKDF_SHA1 و PBKDF2_SHA256 مورد نیاز است.
هزینه مم این پارامتر یا هزینه حافظه مورد نیاز برای الگوریتم 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 اعمال می شود.

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 UID رشته مورد نیاز
این شناسه باید در بین تمام حساب‌های پروژه‌های Firebase شما منحصربه‌فرد باشد. اگر حسابی را با یک UID وارد کنید که از قبل وجود دارد، آن حساب بازنویسی می شود.
2 ایمیل رشته اختیاری
3 ایمیل تایید شد بولی اختیاری
4 هش رمز عبور رشته اختیاری
یک رشته رمزگذاری شده base64. این فیلد به تماس گیرنده نیاز دارد که نقش ویرایشگر یا مالک را داشته باشد.
5 رمز عبور نمک رشته اختیاری
یک رشته رمزگذاری شده base64. این فیلد به تماس گیرنده نیاز دارد که نقش ویرایشگر یا مالک را داشته باشد.
6 نام رشته اختیاری
7 آدرس عکس رشته اختیاری
8 شناسه گوگل رشته اختیاری
9 ایمیل گوگل رشته اختیاری
10 نام نمایشی گوگل رشته اختیاری
11 URL عکس گوگل رشته اختیاری
12 فیسبوک آیدی رشته اختیاری
13 ایمیل فیس بوک رشته اختیاری
14 نام نمایشی فیس بوک رشته اختیاری
15 آدرس فیس بوک عکس رشته اختیاری
16 آیدی توییتر رشته اختیاری
17 ایمیل توییتر رشته اختیاری
18 نام نمایشی توییتر رشته اختیاری
19 آدرس عکس توییتر رشته اختیاری
20 شناسه GitHub رشته اختیاری
21 ایمیل GitHub رشته اختیاری
22 نام نمایشی GitHub رشته اختیاری
23 URL عکس GitHub رشته اختیاری
24 زمان ایجاد کاربر طولانی اختیاری
Epoch Unix Timestamp در میلی ثانیه.
25 آخرین زمان ورود به سیستم طولانی اختیاری
Epoch Unix Timestamp در میلی ثانیه.
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