You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

47 lines
1.4 KiB

import {getStore, setStore} from '@/util/store'
import {setToken} from '@/util/auth'
import {checkTokenValid, generateToken} from '@/api/user'
const user = {
state: {
userInfo: getStore({name: 'userInfo'}) || [],
token: getStore({name: 'token'}) || '',
},
actions: {
GenerateToken({commit}, user) {
return new Promise((resolve, reject) => {
generateToken(user).then(res => {
const data = res.data;
commit('SET_USER', user);
commit('SET_TOKEN', data);
resolve();
}).catch(error => {
reject(error);
})
})
},
CheckTokenValid(body) {
return new Promise((resolve, reject) => {
checkTokenValid(body).then(() => {
resolve();
}).catch(error => {
reject(error)
})
})
}
},
mutations: {
SET_TOKEN: (state, token) => {
setToken(token);
state.token = token;
setStore({name: 'token', content: state.token, type: 'session'})
},
SET_USER: (state, userInfo) => {
state.userInfo = userInfo;
setStore({name: 'userInfo', content: state.userInfo})
}
}
};
export default user