【发布时间】:2018-10-23 17:44:40
【问题描述】:
我的 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();
}
}
});
【问题讨论】:
标签: firebase firebase-authentication quasar-framework