Я хочу реализовать админ-панель с nodeJS для моего собственного собственного приложения.
Для этого я использую NodeJS, pug и Express.
Я пользуюсь firestore и системой аутентификации firebase.
Первый экран моего приложения Nodejs - это страница входа, где мои клиенты могут войти.
На этой странице у меня есть форма для входа
.login-box
form.login-form(method="POST", action="/login")
h3.login-head
i.fa.fa-lg.fa-fw.fa-user
| SIGN IN
.form-group
label.control-label USERNAME
input.form-control(type="text", placeholder="Email", name="username" autofocus)
.form-group
label.control-label PASSWORD
input.form-control(type="password", name="password", placeholder="Password")
.form-group
.utility
.animated-checkbox
label
input(type="checkbox")
span.label-text Stay Signed in
p.semibold-text.mb-2
a(href="#" data-toggle="flip") Forgot Password ?
.form-group.btn-container
button(onclick="signInWithUsername()").btn.btn-primary.btn-block
i.fa.fa-sign-in.fa-lg.fa-fw
| SIGN IN
button(onclick="signInWithGoogle()").btn.btn-primary.btn-block
i.fa.fa-sign-in.fa-lg.fa-fw
| GOOGLE SIGN IN
button(onclick="signInWithFacebook()").btn.btn-primary.btn-block
i.fa.fa-sign-in.fa-lg.fa-fw
| FACEBOOK SIGN IN
Например, логин Google выглядит так:
script(type="text/javascript").
function signInWithGoogle() {
var googleAuthProvider = new firebase.auth.GoogleAuthProvider;
firebase.auth().signInWithPopup(googleAuthProvider)
.then(function(data){
console.log(data)
var idToken = data.credentials.idToken
localStorage.setItem("firebase_idToken", idToken);
})
.catch(function(error){
console.log(error)
})
}
И в моем nodejs-сервере я использую следующий код:
app.post('/login', function (request, response) {
console.log(request.body.password)
console.log(request.body.username)
response.sendFile('dashboard.html', {
root: path.join(__dirname, './docs/')
})
});
Так вот, где мне нужна помощь:
Я думаю, что сервер nodejs должен проверить токен firebase с помощью firebase-admin, а когда он аутентифицирован, он должен перейти в dashboard.html.
Прямо сейчас он перемещается на панель управления сразу после нажатия кнопки «Войти». Но мне нужно сначала выполнить этот код, когда клиент вошел в систему через firebase.
Как я могу обработать действие формы ПОСЛЕ того, как завершен вход в клиентскую систему через firebase?
Кроме того, как мне проверить токен с помощью firebase-admin?