我使用vuex和laravel作爲我項目的後端。
登錄後重定向不起作用。這裏是我的代碼:
Vuex和路由 - 登錄後重定向
methods: {
submit() {
this.$validator.validateAll()
if (!this.errors.any()) {
this.$store.dispatch('SIGNIN', this.user)
this.$router.push({name: 'chat'})
}
}
}
對於Vuex:
actions: {
SIGNIN (context, user) {
context.commit('handleLoader')
Vue.http.post(apiDomain + signInUrl, user, {headers: getHeaders})
.then(response => {
if (response.status === 200) {
Vue.auth.setToken(response.body.token)
Vue.auth.setAuth(response.body.user)
context.commit('handleLoader')
// context.commit('navigateAfterSignIn')
}
})
}
}
我的突變
mutations: {
signin (state) {
state.isLoggedIn = true
}
}
我的路線:
export default new Router({
routes: [
{
path: '/',
name: 'chat',
component: Chat,
meta: {
forAuth: true
}
},
{
path: '/signin',
name: 'signin',
component: Signin,
meta: {
forVisitors: true
}
},
{
path: '/signup',
name: 'signup',
component: Signup,
meta: {
forVisitors: true
}
}
],
mode: 'history'
})
而且我對路線的保護檢查
router.beforeEach(
(to, from, next) => {
if (to.matched.some(record => record.meta.forVisitors)) {
if (Vue.auth.isAuthenticated()) {
next({
path: '/'
})
} else next()
} else if (to.matched.some(record => record.meta.forAuth)) {
if (!Vue.auth.isAuthenticated()) {
next({
path: '/signin'
})
} else next()
} else next()
}
)
如何自動重定向?
感謝您的幫助
如果是,那麼你是否使用'vueRouter'然後你可以把你的'router.js'文件? –
我編輯過這個職位 – Beni
但是你的問題沒有**編輯**標籤,你確定嗎? –