0

私のアプリでは、管理者用のコントロールパネルがあり、ユーザがログインしているかどうかをチェックしています。express.jsでログインしたときのFirebase認証のリダイレクト

app.get('/acp', function (req, res) { 
    var user = firebase.auth().currentUser; 

    if (user) { 
     // Logged in 
     res.send('Hello world'); 
    } else { 
     // Not logged in 
     res.redirect('/admin'); 
    } 
}); 

し、ユーザーがログインしていないとき、彼はは罰金を働く管理者のログインページにリダイレクトされます!

問題はユーザーがログインしているとき、私は管理者のコントロールパネルにリダイレクトすることができる方法である。

app.get('/admin', function (req, res) { 
    res.sendFile(__dirname + '/public/admin.html'); 
}); 

app.post('/admin', function (req, res) { 

    const email = req.body.email; 
    const password = req.body.password; 


    firebase.auth().signInWithEmailAndPassword(email, password).catch(function(error) { 

     var errorCode = error.code; 
     var errorMessage = error.message; 

    }); 

    res.redirect('/acp'); // the problem 

}); 

私はGoogleで、コールバック、ない結果を検索してみました。

答えて

1

signInWithEmailAndPassword約束を返します。ありがとう、

app.post('/admin', function (req, res, next) { 

    const email = req.body.email; 
    const password = req.body.password; 

    firebase.auth() 
     .signInWithEmailAndPassword(email, password) 
     .then(function(user) { res.redirect('/acp'); }) 
     .catch(next); 
}); 
+0

あなたは私の命を救ったの。 – enucar

+1

心配はいりません。また、Firebase APIのauthメソッドの使用はちょっと不思議です。ログインした管理者は1人しかいないようですが、ログインしている管理者がいる場合は誰でも管理ルートにアクセスできるようです。あなたがその配慮をしていないなら、今考えてみるのはいい時期かもしれません。 – cartant

+0

あなたはそうです。私はちょうど私の電話をチェックし、管理者用コントロールパネルにアクセスできます。これを行う最善の方法は何ですか?上記のあなたの投稿を編集して私にリンクを張ったり説明したりできますか?ちょっとだけ。 – enucar

関連する問題