我将Firebase与VueJS一起使用。注册,登录到目前为止工作正常,但只要我用F5重新加载页面或加载页面直接写入浏览器地址栏然后auth会话被终止,用户没有登录了。只要我不重新加载页面,即使我单击路由链接或重定向到其他页面,用户会话仍保持活动状态,它工作正常。 重新载入页面的位置并不重要。
我的登录方式:
firebase.auth().signInWithEmailAndPassword(this.username, this.password).then(
(user) => {
if (user.emailVerified === false) {
firebase.auth().signOut()
} else {
// redirect to lobby page if user is verified and signed in
this.$router.push('/lobby')
}
},
function(err) {
console.log(err.message)
}
)
答案 0 :(得分:3)
您需要调用firebase.auth().onAuthStateChanged
以检测用户是否已登录。
此方法在UI线程中调用身份验证状态的更改:
听众注册后
- 时
当用户登录
当前用户退出时
当前用户更改时
示例用法可以是这样的:
firebase.auth().onAuthStateChanged(user => {
if (user) {
if (user.emailVerified === false) {
firebase.auth().signOut()
} else {
this.$router.push('/lobby')
}
} else {
// will get to here from a logout event
// this.$router.push('/login')
}
}