我在Nuxt应用程序中使用Firebase身份验证,但我无法找到一种在我的Store中保持用户登录状态的好方法 .
我通过在我的商店中调度异步操作来记录用户 . 当用户刷新浏览器(重新加载)时,用户将在我的应用程序中注销,但仍将保留在Firebase中(因为他们没有注销) . 这是一个问题,因为用户必须再次登录我的应用程序才能查看受限页面并执行某些操作 .
我尝试从NuxtServerInit中获取用户(来自index.js商店,因为我正在使用模块模式):
firebase.auth().currentUser
但它返回null,我也试着听:
firebase.auth().onAuthStateChanged((user)
但它也返回null
我还尝试创建一个中间件来检查用户当前是否已登录,但它也返回null .
在之前的Vue项目中,我能够在main.js文件中创建了这样的钩子:
new Vue({
router,
store,
render: h => h(App),
created () {
firebase.auth().onAuthStateChanged((user) => {
if (user) {
store.dispatch('autoSignIn', user)
}
})
}
}).$mount('#app')
但我无法弄清楚如何在我的Nuxt应用程序中执行相同操作 .
我很感激有关如何解决问题的任何想法让我的用户登录 .