index.js
662 Bytes
import Vuex from 'vuex'
const createStore = () => {
return new Vuex.Store({
state: {
user: {},
},
mutations: {
createUserInfo (state, info) {
state.user = Object.assign({}, info)
},
},
actions: {
async nuxtServerInit ({ commit }, { req, app, query, redirect, store, params }) {
if (!store.state.user.id) {
let {data} = await app.$axios.get(`/user?code=${query.code || ''}`)
if (!data.success) {
redirect(301, data.redirect)
} else {
store.commit('createUserInfo', data.user)
}
}
}
}
})
}
export default createStore