UNPKG

@mmh-software/webview

Version:
48 lines (46 loc) 1.01 kB
import Vue from 'vue' import Vuex from 'vuex' import Axios from 'axios'; import createPersistedState from 'vuex-persistedstate'; Vue.use(Vuex) const getDefaultState = () => { return { token: '', user: {} }; }; export default new Vuex.Store({ strict: true, plugins: [createPersistedState()], state: getDefaultState(), getters: { isLoggedIn: state => { return state.token; }, getUser: state => { return state.user; } }, mutations: { SET_TOKEN: (state, token) => { state.token = token; }, SET_USER: (state, user) => { state.user = user; }, RESET: state => { Object.assign(state, getDefaultState()); } }, actions: { login: ({ commit, dispatch }, { token, user }) => { commit('SET_TOKEN', token); commit('SET_USER', user); // set auth header Axios.defaults.headers.common['Authorization'] = `Bearer ${token}`; }, logout: ({ commit }) => { commit('RESET', ''); } } });