0

В моем приложении у меня есть панель управления администратора и проверяется, вошел ли пользователь в систему или нет, что выглядит так.Аутентификация Firebase перенаправляется при входе в систему с помощью express.js

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

Не беспокойтесь. Кроме того, ваше использование методов auth Firebase API немного любопытно. Похоже, что у вас будет только один администратор с подписью и если есть встроенный администратор, похоже, что кто-то сможет получить доступ к маршруту администратора. Если вы не приняли это решение, теперь самое время подумать об этом. – cartant

+0

Вы правы. Я просто проверил на своем телефоне, и я могу получить доступ к панели управления администратора. Каков наилучший способ сделать это? Можете ли вы дать мне ссылку или объяснить, отредактировав свое сообщение выше? Самую малость. – enucar

Смежные вопросы