【发布时间】:2018-09-13 22:29:15
【问题描述】:
我使用 Vue.js、vue-router 和 firebase 创建了一个应用程序。在main.js 文件中,我输入了以下代码:
created() {
firebase.initializeApp({
apiKey: "xxxxxxxxxxx",
authDomain: "xxxxxxx.firebaseapp.com",
databaseURL: "https://xxxxxxxxxx.firebaseio.com",
projectId: "xxxxxxxxxx",
storageBucket: "",
})
firebase.auth().onAuthStateChanged((user) => {
if(user) {
this.$store.dispatch('autoSignIn', user)
}
})
}
这是一个 Vue 商店:
state: {
user: null
},
mutations: {
setUser(state, payload) {
state.user = payload
}
},
actions: {
autoSignIn({commit}, payload) {
commit('setUser', {
id: payload.uid
})
}
}
在 vue-router 中,我确保在进入根目录之前,它会检查用户是否被授权。如果没有,将其重定向到登录页面。并在登录页面中检查用户是否被授权。如果没有,则重定向到根目录。所以,我已经登录并且我在根目录中。我重新加载页面并立即重定向到登录页面并立即重定向到根目录,没有其他任何事情发生。这一切都发生在 1 秒内,看起来很丑陋。
【问题讨论】:
标签: firebase vue.js vue-router vuex