Аутентификация Firebase с помощью nodejs в форме - PullRequest
0 голосов
/ 18 мая 2019

Я хочу реализовать админ-панель с 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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...