ezm*_*egy 15 firebase firebase-tools firebase-authentication
我已经在CLI中导出了我的用户:
firebase auth:export my_users.json
Run Code Online (Sandbox Code Playgroud)
导出文件中的密码应使用SCRYPT进行哈希处理,因为文档说明:
auth:export命令仅使用scrypt算法导出密码哈希值,该算法由Firebase后端使用.使用其他算法散列密码的帐户记录将使用空的passwordHash和salt字段导出.从文件导入用户记录后,项目可能会使用其他算法对密码进行哈希处理,因为当导入的用户第一次登录时,密码只会被scrypt重新哈希
我的哈希键和salt字段在结果中不为空.另外,我知道我的所有用户都至少登录过一次.
现在,当我尝试导入my_users.json时:
firebase auth:import --hash-algo=SCRYPT --rounds=1 my_users.json
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Must provide hash key(base64 encoded) for hash algorithm SCRYPT
Run Code Online (Sandbox Code Playgroud)
但是我应该设置什么--hash-key,因为auth:export命令没有接受任何参数?...
提前致谢
Geo*_*all 17
因此,您现在可以从firebase控制台GUI获取哈希键和salt信息.由于某些原因,我不得不在chrome中输入隐身模式(firebase支持建议这样做).
然后我可以在隐身浏览器中登录我的firebase控制台.
(请注意,您需要使用要复制用户的firebase实例,而不是要复制用户的实例)
单击"身份验证" - >"用户",然后单击"重新加载"按钮旁边的三个垂直点,弹出菜单将显示一个菜单项:"密码哈希参数".
单击此菜单项,将显示执行firebase auth:import命令所需的所有设置.这是我看到的:
hash_config {
algorithm: SCRYPT,
base64_signer_key: <long string of random characters>,
base64_salt_separator: <short string of random characters>,
rounds: 8,
mem_cost: 14,
}
Run Code Online (Sandbox Code Playgroud)
然后我可以成功完成命令
firebase auth:import ./users.json --hash-algo=scrypt --rounds=8 --mem-cost=14 --hash-key=<long string of random characters> --salt-separator=<short string of random characters>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2066 次 |
| 最近记录: |