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.comfacebook.comgithub.comtwitter.com