стейт данные пользователя:
this.$store.dispatch('auth/setUser', { id: 1, name: 'USER' })
Дальше перевожу пользвоателя на маршрут secret
this.$router.push({ name: 'secret' }
В роутере у меня есть хук beforeEnter
beforeEnter: (to, from, next) => {
const userId = store().getters['auth/getUserId']
if (userId === null) {
const auth = Cookies.get('auth')
if (auth === null) {
next({ name: 'Login' })
} else {
next({ path: '/login', query: { auth } })
}
} else {
Cookies.set('auth', auth, { expires: 1 })
next()
}
}
на странцие Login есть хук mounted в котором вызываю метод. auth в случае переданного query-параметра auth:
async auth () {
try {
const auth = this.$route.query.auth
const authQuery = await this.$http.get(`${this.$api}/auth?auth=${auth}`)
if (authQuery.result === true) {
this.$store.dispatch('auth/setUser', { id: 1, name: 'USER' })
this.$q.cookies.set('auth', authQuery.auth_key, { expires: 1 })
this.$router.push({ name: 'secret' }
} else {
this.authFailed = true
}
} catch (e) {
console.log(e)
}
}
Так вот в итоге, beforeEnter отрабатывает перекидывает меня на login передает туда auth
и такое ощущение, что mounted не срабатывает, а точнее не mounted а сам метод авторизации.
В консоль валится ошибка Uncaught (in promise) undefined
Но перед этим есть проблема. В beforeEnter значение из стора прилетает null (т.е.) как-будто в стор оно не установлено.
Что делать не понимаю
Господа хорошие, повторю свой вопрос
я бы с такой проблемой в квазаровский чатик пошел, там более вероятно помогут
Спасибо! Даж чет не подумал, что такой чатик может быть. )
Обсуждают сегодня