دستور
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