2016-11-25 90 views
4

我需要在Firebase中导入包含电子邮件和密码的用户列表。无法使用CLI导入用户帐户Firebase身份验证:导入命令

我试图使用CLI auth:import命令在Firebase中导入用户。 (https://firebase.google.com/docs/cli/auth-import

我选用了HMAC_MD5哈希算法中,

我使用helpmeplease作为encritption秘密字符串 - >为Base64 becames aGVscG1lcGxlYXNl

我使用mypass作为测试密码:用HMAC_MD5和秘密“helpmeplease”加密它变成3a52377f6635d298436013953a1ce4dd并在Bas64成为M2E1MjM3N2Y2NjM1ZDI5ODQzNjAxMzk1M2ExY2U0ZGQ =

我使用users.json

{ "users": [ 

    { 

     "localId": "9997", 

     "email": "[email protected]", 

     "passwordHash": "M2E1MjM3N2Y2NjM1ZDI5ODQzNjAxMzk1M2ExY2U0ZGQ=", 

     "displayName": "9997", 

    } 

    ] } 

我使用命令:

**firebase auth:import --hash-algo='HMAC_MD5' --hash-key='aGVscG1lcGxlYXNl' --project='my-project-name-test' users.json** 

,其结果是:

处理users.json( 194字节)

开始导入1个帐户。

导入成功

并且用户被导入到用户数据库中。 。

但..当我尝试使用 AUTH()登录signInWithEmailAndPassword('[email protected]”, '为mypass') ..我得到这个错误:

{[错误:密码是无效或用户不具有密码] 代码:“AUTH /错密码”,

信息:“的密码无效,或者用户不具有密码“。 }

我搞不​​清楚有什么问题..你能帮我吗?

谢谢

回答

6

看来你的密码哈希是不正确的。你能指出你如何生成HMAC_MD5哈希?

我使用下面的NodeJS代码片段来创建HMAC_MD5密码哈希。

var crypto = require('crypto'); 
crypto.createHmac('md5', 'helpmeplease').update('mypass').digest().toString('base64'); 

而我得到“OlI3f2Y10phDYBOVOhzk3Q ==”作为结果。然后,我在您的帖子中使用该命令将用户导入到Firebase身份验证。我确认我可以成功登录。

1

谢谢@ wyhao31

我使用PHP来获得我需要的火力地堡导入用户,数据和密码。

我在一个错误的方式使用的hash_hmac()PHP函数:

$secret = "helpmeplease"; 
$password = "mypass"; 
$hmac_md5 = hash_hmac('md5', $password, $secret); //3a52377f6635d298436013953a1ce4dd 
$base64 = base64_encode($hmac_md5); //M2E1MjM3N2Y2NjM1ZDI5ODQzNjAxMzk1M2ExY2U0ZGQ= 

要解决我需要强制HMAC_MD5输出原始二进制数据的问题:

$secret = "helpmeplease"; 
$password = "mypass"; 
$base64 = base64_encode(hash_hmac('md5', $password, $secret, TRUE)); //OlI3f2Y10phDYBOVOhzk3Q== 

所以我让你结果,这工作正常!

谢谢!

相关问题