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
  • Вопрос задан
  • 78 просмотров
Пригласить эксперта
Ответы на вопрос 1
alekstar79
@alekstar79
То есть, при запуске приложения, вот именно с этим кодом, у тебя в консоль выводится токен, а в стэйте undefined? Или как... Где ты смотришь в сторе, что Cookies.get('accessToken') === undefined. Или где у тебя в сторе присвоение globalToken? А когда у тебя вызывается экшен? Возможно висит на хуке... И что приходит от сервера? Не видя логики в целом, сложно сказать почему у тебя там где то, непонятно где, undefined.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Константа Москва
от 120 000 до 180 000 руб.
ООО "СИРЕНА БАС" Москва
от 80 000 до 150 000 руб.
Black Wall Group Москва
от 80 000 руб.
21 марта 2019, в 00:19
5000 руб./за проект
20 марта 2019, в 20:02
1000 руб./за проект