使用express.js登录时,Firebase身份验证重定向

时间:2017-01-10 22:53:33

标签: javascript node.js express firebase firebase-authentication

在我的应用程序中,我有管理员控制面板,并检查用户是否已登录,如下所示。

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

});

我试图在谷歌搜索回调,但没有结果。

1 个答案:

答案 0 :(得分:2)

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);
});