Vue js Auto login

Вообщем придумал такую функцию как ясно из названия отвечает, за авто авторизацию:

autoLoginUser ({ commit }) {
  commit('clearError')

  const access_token = localStorage.getItem('access_token')
  if (access_token) {
    commit('setLoading', true)

    try {
      const user = axios.post(environment.url + '/api/v1/users/login-by-token', { access_token })

      commit('setUser', user.data)
      commit('setAccessToken', user.data.auth_key)
      commit('setLoading', false)
    } catch (err) {
      commit('setLoading', false)
      commit('setError', i18n.t(err.response.data.message))
      throw err
    }
  }
}

Я сохраняю при первой авторизации, token и в следующие разы если он есть я его ищу, но теперь есть проблема если ставить его в главный файл и привязать в created, он пересекается с моей защитой роутов, которая выглядит так:

export default function (to, from, next) {
  if (store.getters.user) {
      next();
  } else {
      next('/auth/login?loginError=true');
  }
}

В итоге хоть на пару секунд, но у меня мелькает окно авторизакции, а я хотел бы этого избежать, но как?? Вообщем есть у кого идеи, как это сделать скажем так по всем канонам??


Ответы (0 шт):