如何在vuex和quasar应用程序中使用createPersistedState?

时间:2019-05-25 14:28:34

标签: vue.js vuejs2 vuex

如何在vuex和quasar应用程序中使用createPersistedState?

我试图在我的应用程序的cookie中保留一些dao,但是数据没有写在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
}

索引配置存储

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 个答案:

答案 0 :(得分:2)

最有可能是由于您在Cookie.set中使用的安全道具

  

安全

     

是或否,表示cookie传输是否需要安全协议(https)。

     

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

如果您在localhost上进行开发,则很可能没有使用HTTPS。

您可以使用env变量将安全值设置为基于您的环境

secure: process.env.NODE_ENV === 'production'