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');
}
}
В итоге хоть на пару секунд, но у меня мелькает окно авторизакции, а я хотел бы этого избежать, но как?? Вообщем есть у кого идеи, как это сделать скажем так по всем канонам??