auth:import và auth:export

  • Lệnh auth:import nhập tài khoản người dùng vào dự án Firebase.

  • Lệnh auth:export xuất tài khoản người dùng sang tệp JSON và CSV.

Tham số băm mật khẩu

Để xác định các tham số băm mật khẩu được sử dụng cho dự án của bạn, hãy điều hướng đến phần Xác thực > Người dùng của bảng điều khiển Firebase và nhấp vào biểu tượng ba chấm phía trên danh sách người dùng. Bạn sẽ thấy một hộp thoại có danh sách các tham số băm mật khẩu mà bạn có thể sử dụng với các lệnh auth:importauth:export :

hash_config {
  algorithm: SCRYPT,
  base64_signer_key: <...sensitive...>,
  base64_salt_separator: <...sensitive...>,
  rounds: 8,
  mem_cost: 14,
}

Những giá trị này rất nhạy cảm, vì vậy hãy cẩn thận khi lưu trữ chúng. Hầu hết các dự án Firebase đều sử dụng SCRYPT , một phiên bản sửa đổi của thuật toán băm mã hóa , đây là phiên bản mặc định cho các dự án mới.

xác thực:nhập khẩu

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
Thông số
tập tin tài khoản Tệp CSV hoặc JSON chứa tài khoản người dùng cần nhập. Xem Định dạng tệp .
thuật toán băm Thuật toán dùng để băm mật khẩu trong tệp tài khoản người dùng.
Bắt buộc phải nhập tài khoản có trường mật khẩu. Một trong các giá trị sau: BCRYPT , SCRYPT , STANDARD_SCRYPT , HMAC_SHA512 , HMAC_SHA256 , HMAC_SHA1 , HMAC_MD5 , MD5 , SHA512 , SHA256 , SHA1 , PBKDF_SHA1 , PBKDF2_SHA256 .
khóa băm Khóa dùng để băm mật khẩu.
Cần thiết cho các SCRYPT , HMAC_SHA512 , HMAC_SHA256 , HMAC_SHA1HMAC_MD5 . Đối số này phải được định dạng dưới dạng chuỗi được mã hóa base64 .
máy tách muối Bộ tách muối sẽ được thêm vào muối khi xác minh mật khẩu.
Tùy chọn cho tất cả các thuật toán. Đối số này phải được định dạng dưới dạng chuỗi được mã hóa base64 .
vòng Số vòng được sử dụng để băm mật khẩu.
Cần thiết cho các thuật SCRYPT , MD5 , SHA512 , SHA256 , SHA1 , PBKDF_SHA1PBKDF2_SHA256 .
chi phí mem Tham số này thể hiện chi phí bộ nhớ cần thiết cho thuật toán SCRYPT HOẶC chi phí CPU/bộ nhớ cần thiết cho thuật toán STANDARD_SCRYPT .
sự song song hóa Sự song song của thuật toán băm.
Cần thiết cho thuật toán STANDARD_SCRYPT .
kích thước khối Kích thước khối (thông thường là 8) của thuật toán băm.
Cần thiết cho thuật toán STANDARD_SCRYPT .
dk-len Độ dài khóa dẫn xuất của thuật toán băm.
Cần thiết cho thuật toán STANDARD_SCRYPT .
thứ tự băm đầu vào Thứ tự của mật khẩu và muối.
Các giá trị có thể có là SALT_FIRSTPASSWORD_FIRST . Cờ này áp dụng cho SHA512 , SHA256 , SHA1 , MD5 , HMAC_SHA512 , HMAC_SHA256 , HMAC_SHA1HMAC_MD5 .

xác thực:xuất khẩu

firebase auth:export ACCOUNT_FILE --format=FILE_FORMAT
Thông số
tập tin tài khoản Tệp CSV hoặc JSON để xuất sang. Xem Định dạng tệp .
định dạng tệp Không bắt buộc. Định dạng tệp cần xuất: CSV hoặc JSON.
Nếu tên tệp được chỉ định trong tham số account_file kết thúc bằng .csv hoặc .json thì định dạng đó sẽ được sử dụng và tham số này sẽ bị bỏ qua.

Định dạng tệp

Tệp tài khoản người dùng có thể được định dạng dưới dạng CSV hoặc JSON .

CSV

Tệp tài khoản người dùng CSV có định dạng sau:

Số cột Mô tả trường Loại lĩnh vực Bình luận
1 UID Sợi dây Yêu cầu
ID này phải là duy nhất trong số tất cả các tài khoản trong dự án Firebase của bạn. Nếu bạn nhập tài khoản có UID đã tồn tại thì tài khoản đó sẽ bị ghi đè.
2 E-mail Sợi dây Không bắt buộc
3 email đã kích hoạt Boolean Không bắt buộc
4 Băm mật khẩu Sợi dây Không bắt buộc
Một chuỗi được mã hóa base64. Trường này yêu cầu người gọi phải có vai trò Biên tập viên hoặc Chủ sở hữu .
5 mật khẩu muối Sợi dây Không bắt buộc
Một chuỗi được mã hóa base64. Trường này yêu cầu người gọi phải có vai trò Biên tập viên hoặc Chủ sở hữu .
6 Tên Sợi dây Không bắt buộc
7 URL ảnh Sợi dây Không bắt buộc
số 8 ID Google Sợi dây Không bắt buộc
9 Email của Google Sợi dây Không bắt buộc
10 Tên hiển thị của Google Sợi dây Không bắt buộc
11 URL ảnh của Google Sợi dây Không bắt buộc
12 tài khoản Facebook Sợi dây Không bắt buộc
13 Email Facebook Sợi dây Không bắt buộc
14 Tên hiển thị trên Facebook Sợi dây Không bắt buộc
15 URL ảnh trên Facebook Sợi dây Không bắt buộc
16 ID Twitter Sợi dây Không bắt buộc
17 Email Twitter Sợi dây Không bắt buộc
18 Tên hiển thị Twitter Sợi dây Không bắt buộc
19 URL ảnh Twitter Sợi dây Không bắt buộc
20 ID GitHub Sợi dây Không bắt buộc
21 Email GitHub Sợi dây Không bắt buộc
22 Tên hiển thị GitHub Sợi dây Không bắt buộc
23 URL ảnh GitHub Sợi dây Không bắt buộc
24 Thời gian tạo người dùng Dài Không bắt buộc
Dấu thời gian Unix của Epoch tính bằng mili giây.
25 Thời gian đăng nhập lần cuối Dài Không bắt buộc
Dấu thời gian Unix của Epoch tính bằng mili giây.
26 Số điện thoại Sợi dây Không bắt buộc

Nếu bạn không chỉ định giá trị tùy chọn, hãy đảm bảo rằng bạn vẫn bao gồm trường trống cho giá trị đó. Một trường trống có thể có số lượng ký tự khoảng trắng bất kỳ.

Ví dụ: dòng sau đại diện cho tài khoản người dùng:

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

Tệp tài khoản người dùng JSON có định dạng sau:

{
  "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
        },
        ...
      ]
    },
    ...
  ]
}

Thay thế PROVIDER_ID bằng một trong các giá trị sau:

  • google.com
  • facebook.com
  • github.com
  • twitter.com