@700Hp

Как проверить на валидность accessToken до перехода по роуту?

У меня есть переменная isAuth по умолчанию false, которую я храню в сторе.
После логина сохраняется access в локальное хранилище и isAuth = true.
Всё отлично работает для неавторизованных пользователей.

Ошибка в том, что после перезагрузки страницы главный файл проверяет на валидность текущий токен. И роутер грузится раньше, чем приходит ответ и сразу редиректит как неавторизованного.
App.vue
onBeforeMount( async () => {
       const accessToken = localStorage.getItem('auth-token')
        if (accessToken) {
        await store.dispatch('auth/checkAuth')
      }
     })


router.beforeEach
if (requireAuth && store.getters['auth/isAuth']) {
    next()
  } else if (requireAuth && !store.getters['auth/isAuth']) {
    next({name: 'login'})
  } else if (!requireAuth && store.getters['auth/isAuth']) {
    next({name: 'admin'})
  } else {
    next()
  }
  • Вопрос задан
  • 146 просмотров
Пригласить эксперта
Ответы на вопрос 1
Ahmad66617
@Ahmad66617
Senior Fullstack Engineer
Возможно я не подскажу именно по Vue, но в ангуляре для этого есть resolver - возможно во Vue тоже есть, также если организован стейт менеджмент, например NgRx - то в стейтах тоже есть сайд эффект роутинга где собственно и можно отследить до, после и момент перехода и т д
Ответ написан
Ваш ответ на вопрос

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

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