squadbrodyaga
@squadbrodyaga
帆は風を変えた

Ошибка vue-router при проверки авторизации и редиректе, как исправить?

Здравствуйте, есть небольшое приложение, функционал которого сводится только к Войти/Выйти,
но проблема в том, что после авторизации или выхода пользователя Vue-router пишет об ошибке.
The "next" callback was called more than once in one navigation guard when going from "/" to "/". It should be called exactly one time in each navigation guard. This will fail in production


Вот как я проверяю, авторизован ли пользователь:
router.beforeEach((to, from, next) => {
  const auth = getAuth()
  auth.onAuthStateChanged(user => {    
    if (!user && to.path != '/auth') {
      router.push('/auth')
    }
    else if (user && to.path == '/auth') {
      router.push(from.path)
    } 
    else next()
  })
})


Сейчас я решаю эту проблему принудительной перезагрузкой страницы после авторизации
или выхода пользователя, но может есть более лаконичное решение?
  • Вопрос задан
  • 299 просмотров
Решения вопроса 1
@7rows
Frontend Разработчик / Vue / JS / TS / CSS
UPDATE:

router.beforeEach((to, from, next) => {
  const auth = getAuth()
  auth.onAuthStateChanged(user => {    
    if (!user && to.path !== '/auth') {
      next('/auth')
    }
    else if (user && to.path === '/auth') {
      next(from.path)
    } 
    next()
  })
})


Если я правильно вас понял, вам достаточно лишь проверять, что пользователь не авторизован, если он авторизован, то пускать его на все страницы, тогда второе условие, вам не нужно будет
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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