Ich benutze Vuex und Laravel als Backend für mein Projekt.
Umleitung nach dem Anmelden funktioniert nicht. hier ist mein Code:
Vuex und Routing - Umleitung nach dem Anmelden
methods: {
submit() {
this.$validator.validateAll()
if (!this.errors.any()) {
this.$store.dispatch('SIGNIN', this.user)
this.$router.push({name: 'chat'})
}
}
}
Für 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')
}
})
}
}
Und meine Mutation
mutations: {
signin (state) {
state.isLoggedIn = true
}
}
Meine Routen:
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'
})
Und meine Prüfung für Routen Schutz
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()
}
)
Wie automatisch umleiten ??
Danke für Ihre Hilfe
Verwenden Sie 'vueRouter' wenn ja, dann können Sie Ihre' router.js' Datei einfügen? –
Ich habe den Beitrag bearbeitet – Beni
Aber es gibt keine ** editierten ** Tag auf Ihre Frage, sind Sie sicher? –