auth:import
指令會將使用者帳戶匯入 Firebase 專案。auth:export
指令會將使用者帳戶匯出成 JSON 和 CSV 檔案。
密碼雜湊參數
如要判斷專案使用的密碼雜湊參數,請前往 Firebase 控制台的「Authentication」 >「Users」部分,然後按一下使用者清單上方的三點圖示。系統會顯示對話方塊,列出可搭配 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 檔案。請參閱「檔案格式」一節。 |
雜湊 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 演算法所需的 CPU/記憶體成本。 |
平行處理 | 雜湊演算法平行處理。 對 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:export
firebase auth:export ACCOUNT_FILE --format=FILE_FORMAT
參數 | |
---|---|
account_file | 要匯出的 CSV 或 JSON 檔案。請參閱「檔案格式」一節。 |
檔案格式 | 選用。要匯出的檔案格式:CSV 或 JSON。 如果 account_file 參數中指定的檔案名稱結尾是 .csv 或 .json ,系統就會使用該格式,並忽略這個參數。
|
檔案格式
CSV
CSV 使用者帳戶檔案格式如下:
欄號 | 欄位說明 | 欄位類型 | 註解 |
---|---|---|---|
1 | UID | 字串 | 必填 此 ID 在 Firebase 專案中的所有帳戶均不得重複。如果匯入的帳戶已有 UID,會導致帳戶遭到覆寫。 |
2 | 電子郵件地址 | 字串 | 選填 |
3 | 電子郵件已驗證 | 布林值 | 選填 |
4 | 密碼雜湊 | 字串 | 選用 Base64 編碼字串。呼叫者必須具備「編輯者」或「擁有者」角色,才可使用這個欄位。 |
5 | 密碼鹽 | 字串 | 選用 Base64 編碼字串。呼叫者必須具備「編輯者」或「擁有者」角色,才可使用這個欄位。 |
6 | 名稱 | 字串 | 選填 |
7 | 相片網址 | 字串 | 選填 |
8 | Google ID | 字串 | 選填 |
9 | Google 電子郵件 | 字串 | 選填 |
10 | Google 顯示名稱 | 字串 | 選填 |
11 | Google 相簿網址 | 字串 | 選填 |
12 | Facebook ID | 字串 | 選填 |
13 | Facebook 電子郵件 | 字串 | 選填 |
14 | Facebook 顯示名稱 | 字串 | 選填 |
15 | Facebook 相片網址 | 字串 | 選填 |
16 | Twitter ID | 字串 | 選填 |
17 | Twitter 電子郵件 | 字串 | 選填 |
18 | Twitter 顯示名稱 | 字串 | 選填 |
19 | Twitter 相片網址 | 字串 | 選填 |
20 | GitHub ID | 字串 | 選填 |
21 | GitHub 電子郵件 | 字串 | 選填 |
22 | GitHub 顯示名稱 | 字串 | 選填 |
23 | 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