@Sergeyoffkey

Гуарды для роутов не понятно как работает?

В главном компоненте 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')
    }
}

На всех компонентах где есть гуарды на роутах - сессия слетает, идет переход на компонент логина и через пару секунд восстанавливается.

Помогите решить данную траблу, да и как воопще правильно писать эти гуарды на роуты?
  • Вопрос задан
  • 162 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы