Задать вопрос
tripcollor
@tripcollor

Почему в nuxt в переменной внутри state не считывается значение с cookie выдает undifined?

Делаю авторизацию при обращении к api я получаю токен из записываю его в $store.state.token
Нужно записать этот токен в и Cookie и при загрузке страницы брать значение токена из Cookie или если его нет установить в null.
В общем объекте state я определяю переменную равную token: Cookies.get('accessToken') || null
Вызов Cookies.get('accessToken') в данном случае выдаем undifined

Выше определения константы store я обратился к Cookie и записал в переменную globalToken которую вывел в потом в консоли, там все нормально и консоль выдает токен, но когда я присваиваю эту переменную в store.state.token = globalToken , то она опять undefined

Как мне решить эту проблему?

import Vue from 'vue'
import Vuex from 'vuex'
import Cookies from 'js-cookie';

Vue.use(Vuex)

let globalToken = Cookies.get('accessToken')
console.log('globalToken', globalToken)

const store = () => new Vuex.Store({
  state: {
    token: Cookies.get('accessToken') || null,
  },
  mutations: {
    retriveToken(state, token){
      state.token = token
    },
  },
  actions: {
    retriveToken(context, credentials){
      this.$axios.post('/login', {
        username: credentials.username,
        password: credentials.password
      })
      .then(function (response) {
        const token = response.data.access_token;

        Cookies.set('accessToken', token)
        context.commit('retriveToken', token)
      })
    }
  },
})

export default store
  • Вопрос задан
  • 949 просмотров
Подписаться 2 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
alekstar79
@alekstar79
То есть, при запуске приложения, вот именно с этим кодом, у тебя в консоль выводится токен, а в стэйте undefined? Или как... Где ты смотришь в сторе, что Cookies.get('accessToken') === undefined. Или где у тебя в сторе присвоение globalToken? А когда у тебя вызывается экшен? Возможно висит на хуке... И что приходит от сервера? Не видя логики в целом, сложно сказать почему у тебя там где то, непонятно где, undefined.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы