auth:import
指令會將使用者帳戶匯入 Firebase Google Cloud 的 Resource Manager 工具 經特別設計,能以程式輔助方式協助您管理專案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 檔案。詳情請見 檔案格式: |
雜湊 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-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