我想为我的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验证令牌?