В главном компоненте APP после входа получаю из стора,и слежу за сессией пользователя которую получаю по UID из FIREBASE
Файл Апп:
computed: {
isUserAuth () {
return this.$store.getters.isUserAuth
},
userSaveSession() {
return this.$store.dispatch('userSaveSession')
},
//for test check user UID
userData () {
return this.$store.getters.userData
}
},
watch: {
isUserAuth (value) {
console.log('User auth is :' + value);
if (value === true) {
//this.$router.replace("/")
}
}
файл роутер индекс:
import Vue from 'vue'
import Router from 'vue-router'
import Store from '../store/index'
//Route components
import Home from '@/pages/Home'
import Register from '@/pages/user/Register'
import Login from '@/pages/user/Login'
import UserSettings from '@/pages/user/UserHome'
import UserAddNotice from '@/pages/user/user-components/UserAddNotice'
import UserEditNotice from '@/pages/user/user-components/UserEditNotice'
import UserNotices from '@/pages/user/user-components/UserNotices'
import UserReset from '@/pages/user/Resetpass'
import Single from '@/pages/Single'
Vue.use(Router);
// Routes
export default new Router({
routes:
[
{
path: '/usersettings',
name: 'usersettings',
component: UserSettings,
beforeEnter: authGuard
},
{
path: '/useraddnotice',
name: 'useraddnotice',
component: UserAddNotice,
beforeEnter: authGuard
},
{
path: '/usereditnotice',
name: 'usereditnotice',
component: UserEditNotice,
beforeEnter: authGuard
},
{
path: '/usernotices',
name: 'usernotices',
component: UserNotices,
beforeEnter: authGuard
},
],
mode: 'history'
})
function authGuard(from, to, next) {
console.log(Store.getters.isUserAuth)
if(Store.getters.isUserAuth){
next()
} else {
next('/login')
}
}
На всех компонентах где есть гуарды на роутах - сессия слетает, идет переход на компонент логина и через пару секунд восстанавливается.
Помогите решить данную траблу, да и как воопще правильно писать эти гуарды на роуты?