【发布时间】:2019-02-27 05:11:53
【问题描述】:
我使用 Nuxt(vue) 作为前端,使用 Firestore 和身份验证作为后端。我让身份验证工作到一定程度,但我的问题是刷新浏览器会重置状态,因此我的中间件返回错误结果。
这里有一些代码sn-ps:
中间件:
export default function ({store, redirect, route}) {
const userIsLoggedIn = !!store.state.currentUser;
if(!userIsLoggedIn) {
return redirect ('/')
}
}
插件:
import { auth } from '@/services/firebaseInit.js'
export default (context) => {
const { store } = context
return new Promise((resolve, reject) => {
auth.onAuthStateChanged(user => {
store.commit('setCurrentUser', user)
resolve()
})
})
}
现在这在运行应用程序中有效,但是当有人刷新您需要身份验证的页面时,它不起作用并重定向到 /,现在我不知道如何解决这个问题,希望您能提供帮助,如果您需要更多代码,那么我会提供它。
编辑 1:
async nuxtServerInit ({ commit }, { req }) {
let user = await firebase.auth().currentUser
commit('setCurrentUser', user)
}
【问题讨论】:
标签: javascript firebase vue.js firebase-authentication nuxt.js