我的 Quasar 应用程序在浏览器刷新和 Firebase 身份验证方面遇到问题。
用户登录然后单击浏览器刷新后,firebase.auth().currentUser
返回 null(因为它是异步执行的)。这意味着当beforeEach
被执行时currentUser
为空并且用户被提示登录页面。但是我看到当回调onAuthStateChanged
被调用时,用户设置正确。
在 Quasar 应用程序中,是否有任何模式onAuthStateChanged
可以在导航过程中使用,以便重用现有的用户会话?
// Vue-router => index.js
firebase.auth().onAuthStateChanged(user => {
console.log('onAuthStateChanged Invoked => ' + user);
});
router.beforeEach((to, from, next) => {
let currentUser = firebase.auth().currentUser;
let requiresAuth = to.matched.some(record => record.meta.requiresAuth);
if (requiresAuth && !currentUser) {
next('signin');
} else {
if (requiresAuth && currentUser.emailVerified === false) {
next('signin');
} else {
next();
}
}
});