auth:nhập và xác thực:xuất

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

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

Thông số hàm băm mật khẩu

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

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

Vì các giá trị này mang tính nhạy cảm nên hãy cẩn thận khi lưu trữ. Hầu hết các dự án Firebase đều sử dụng SCRYPT, phiên bản được sửa đổi của thuật toán băm scrypt, đây là tuỳ chọn mặc định cho các dự án mới.

auth:nhập

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_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 hàm 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ó cá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.
khoá băm Khoá dùng để băm mật khẩu.
Bắt buộc đối với SCRYPT, HMAC_SHA512, HMAC_SHA256 HMAC_SHA1HMAC_MD5. Đối số này phải được định dạng được mã hoá base64 .
tách-muối Dấu phân tách muối sẽ được thêm vào dữ liệu ngẫu nhiên khi xác minh mật khẩu.
Không bắt buộc đối với tất cả thuật toán. Đối số này phải được định dạng dưới dạng được mã hoá base64.
vòng Số vòng được dùng để băm mật khẩu.
Bắt buộc đối với SCRYPT, MD5, SHA512 SHA256, SHA1, PBKDF_SHA1PBKDF2_SHA256 thuật toán.
chi phí tối thiểu Tham số này biểu thị 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.
tải song song Việc song song hoá thuật toán băm.
Bắt buộc đối với thuật toán STANDARD_SCRYPT.
kích thước khối Kích thước khối (thường là 8) của thuật toán băm.
Bắt buộc đối với thuật toán STANDARD_SCRYPT.
dk-len Độ dài khoá phát sinh của thuật toán băm.
Bắt buộc đối với thuật toán STANDARD_SCRYPT.
thứ tự đầu vào hàm băm Thứ tự của mật khẩu và dữ liệu ngẫu nhiên.
Các giá trị có thể sử dụng là SALT_FIRSTPASSWORD_FIRST. Cờ này áp dụng đến SHA512, SHA256, SHA1, MD5, HMAC_SHA512, HMAC_SHA256 HMAC_SHA1HMAC_MD5.

auth:xuất

firebase auth:export ACCOUNT_FILE --format=FILE_FORMAT
Thông số
tệp_tài_khoản Tệp CSV hoặc JSON để xuất sang. Xem Tệp định dạng.
định dạng tệp Không bắt buộc. Định dạng tệp để xuất: CSV hoặc JSON.
Nếu tên tệp được chỉ định trong tham số account_file kết thúc với .csv hoặc .json, thì định dạng đó sẽ được sử dụng và 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 là CSV hoặc JSON.

CSV

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

Số cột Nội dung mô tả trường Loại trường Nhận xét
1 UID Chuỗi Bắt buộc
Mã này phải là duy nhất trong số tất cả các tài khoản trong các dự án Firebase của bạn. Nếu bạn nhập một tài khoản có mã UID đã tồn tại, thì tài khoản đó sẽ bị ghi đè.
2 Email Chuỗi Không bắt buộc
3 Email đã được xác minh Boolean Không bắt buộc
4 Hàm băm mật khẩu Chuỗi Không bắt buộc
Một chuỗi mã hoá base64. Trường này yêu cầu phương thức gọi có vai trò Người chỉnh sửa hoặc Chủ sở hữu.
5 Muối mật khẩu Chuỗi Không bắt buộc
Một chuỗi mã hoá base64. Trường này yêu cầu phương thức gọi có vai trò Người chỉnh sửa hoặc Chủ sở hữu.
6 Tên Chuỗi Không bắt buộc
7 URL ảnh Chuỗi Không bắt buộc
8 Mã nhận dạng trên Google Chuỗi Không bắt buộc
9 Email của Google Chuỗi Không bắt buộc
10 Tên hiển thị của Google Chuỗi Không bắt buộc
11 URL trên Google Photos Chuỗi Không bắt buộc
12 ID Facebook Chuỗi Không bắt buộc
13 Email Facebook Chuỗi Không bắt buộc
14 Tên hiển thị của Facebook Chuỗi Không bắt buộc
15 URL ảnh Facebook Chuỗi Không bắt buộc
16 ID Twitter Chuỗi Không bắt buộc
17 Email trên Twitter Chuỗi Không bắt buộc
18 Tên hiển thị trên Twitter Chuỗi Không bắt buộc
19 URL ảnh trên Twitter Chuỗi Không bắt buộc
20 Mã GitHub Chuỗi Không bắt buộc
21 Email GitHub Chuỗi Không bắt buộc
22 Tên hiển thị trên GitHub Chuỗi Không bắt buộc
23 URL ảnh GitHub Chuỗi 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 hệ thống (tính bằng mili giây).
25 Thời gian đăng nhập gần đây nhất Dài Không bắt buộc
Dấu thời gian Unix của hệ thống (tính bằng mili giây).
26 Số điện thoại Chuỗi Không bắt buộc

Nếu bạn không chỉ định một giá trị không bắt buộc, hãy đảm bảo rằng bạn vẫn thêm thuộc tính trường trống cho giá trị. Trường trống có thể là bao nhiêu khoảng trống bất kỳ ký tự.

Ví dụ: dòng sau đây thể hiện một 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