在表单中使用Node.js进行Firebase身份验证

时间:2019-05-18 16:08:56

标签: javascript node.js forms firebase authentication

我想为我的react native应用程序使用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-admin验证firebase令牌,并且在对其进行身份验证后,应转到dashboard.html。

现在,它在“登录”按钮按下后立即导航到仪表板。但是,当客户端通过Firebase登录时,我需要先执行此代码。 客户端Firebase登录完成后,如何处理表单操作?

此外,如何使用firebase-admin验证令牌?

0 个答案:

没有答案