2016-11-25 1 views
4

Firebaseで電子メールとパスワードを使用してユーザのリストをインポートする必要があります。CLIでユーザアカウントをインポートできないFirebase auth:importコマンド

CLIの認証:インポートコマンドを使用して、Firebaseでユーザをインポートしようとしています。私はHMAC_MD5ハッシュアルゴを選びましました

https://firebase.google.com/docs/cli/auth-import

、私はencritptionのための秘密の文字列として helpmepleaseを使用してい

- > Base64には、aGVscG1lcGxlYXNl

私はをbecames 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つのアカウントのインポートが開始されています。

を正しくインポートしました。

ユーザーはユーザーデータベースにインポートされます。 。

しかし..私は( 認証を使用してログインしてみてください)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 Authにユーザをインポートします。私は正常にサインインできることを確認しました。

1

は私がFirebaseにインポートする必要があるユーザー、データおよびパスワードを取得するためにPHPを使用しwyhao31

@ありがとうございます。

私は間違った方法で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== 

をだから私はあなたを取得します結果、それは正しく動作します!

ありがとうございました!

関連する問題