Суть вопроса в том, что если юзверь уже имеет валидный токен и его надо авторизовать вне зависимости того, где он находится в приложении:
1. У меня была идея, как в главном файле(App.vue) сделать mounted(), который достаёт из хранилища токен и отправляет запрос на сервер для авторизации токена.. Но мне такой подход начал не нравится тем, что он выглядит как-то "середнячок".
2. Подумав некоторое время, я решил, что буду авторизировать юзера через beforeEnter в роутере, мол, просто защитить роуты от анонимов | Через n время этот подход так же мне начал казаться как "костыль" или т.п, поэтому тоже отбросил его в сторону.
router.beforeEach(async (to, from, next) => {
if(!to.meta.requireAuth) {
return next();
}
if(store.getters['auth/isAuthorized']) {
// тут может быть проверка не устаревает ли токен по времени
// и запрос нового, но лучше если этим автоматически
// в фоновом режиме будет заниматься либа\самописный сервис
// if (await store.dispatch('auth/updateTokenIfNearExpired'))
return next();
}
return next('/login');
})