У меня есть переменная 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()
}