Как использовать createPersistedState в приложении Vuex и Quasar? - PullRequest
0 голосов
/ 25 мая 2019

Как использовать createPersistedState в приложении vuex и quasar?

Я пытаюсь сохранить некоторые ошибки в файле cookie моего приложения, однако данные не записываются в файл cookie.

Что я делаю не так?

Заранее благодарю за внимание всех.

Действие

function setUser ({ commit }) {
  axios.get(`/modulo/app`, { headers: { 'Authorization': 'Bearer ' + store.getters.getToken() } })
    .then(response => {
      commit('setUserMutation', response.data)
    })
    .catch(error => {
      if (!error.response) {
        console.log(error.response)
      }
    })
}

Мутация

const setUserMutation = (state, data) => { state.user = data }

Геттеры

function getUser (state) {
  return state.user
}

index config Store

export default function () {
  const Store = new Vuex.Store({
    modules: {
      auth
    },
    plugins: [createPersistedState(
      {
        paths: ['auth.setUserMutation'],
        storage: {
          getItem: key => Cookies.get(key),
          setItem: (key, value) => Cookies.set(key, value, { expires: 3, secure: true }),
          removeItem: key => Cookies.remove(key)
        }
      }
    )],
    strict: process.env.DEV
  })
  return Store
}

1 Ответ

2 голосов
/ 25 мая 2019

Скорее всего, это связано с тем, что в Cookie.set используются безопасные реквизиты.

secure

Либо истина, либо ложь, указывающая, требует ли передача файлов cookie безопасного протокола (https)..

- https://github.com/js-cookie/js-cookie

Если вы разрабатываете на localhost, скорее всего, он не использует HTTPS.

Вы можете установить безопасное значение наосновываться на вашей среде, используя переменную env

secure: process.env.NODE_ENV === 'production'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...