Firebase Auth Web:使用页面重新加载注销

时间:2018-02-08 23:13:15

标签: node.js firebase vuejs2 firebase-authentication

我将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)
                    }
                )

1 个答案:

答案 0 :(得分:3)

您需要调用firebase.auth().onAuthStateChanged以检测用户是否已登录。

此方法在UI线程中调用身份验证状态的更改:

  
      
  • 听众注册后

  •   
  • 当用户登录

  • 时   
  • 当前用户退出时

  •   
  • 当前用户更改时

  •   

Source

示例用法可以是这样的:

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')
  }
}