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:import
và auth: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_SHA1 và HMAC_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_SHA1 và
PBKDF2_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_FIRST và PASSWORD_FIRST . Cờ này áp dụng
đến SHA512 , SHA256 , SHA1 ,
MD5 , HMAC_SHA512 , HMAC_SHA256
HMAC_SHA1 và HMAC_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 | 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