mirror of https://gitee.com/pnoker/dc3-web.git
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.
70 lines
2.1 KiB
70 lines
2.1 KiB
import md5 from 'js-md5';
|
|
import {getStore, removeStore, setStore} from '@/util/store'
|
|
import {getTokenCookies, removeTokenCookies, setTokenCookies} from '@/util/auth'
|
|
import {cancelToken, generateSalt, generateToken} from '@/api/user'
|
|
|
|
const user = {
|
|
state: {
|
|
user: getStore({name: 'user'}) || '',
|
|
token: getTokenCookies() || '',
|
|
},
|
|
actions: {
|
|
GenerateSalt({commit}, name) {
|
|
return new Promise((resolve, reject) => {
|
|
generateSalt(name).then(res => {
|
|
commit('SET_USER', name);
|
|
resolve(res.data);
|
|
}).catch(error => {
|
|
reject(error);
|
|
})
|
|
});
|
|
},
|
|
GenerateToken({commit}, form) {
|
|
let user = {
|
|
name: form.user.name,
|
|
password: md5(md5(form.user.password) + form.salt)
|
|
};
|
|
return new Promise((resolve, reject) => {
|
|
generateToken(user).then(res => {
|
|
const data = res.data;
|
|
commit('SET_TOKEN', data);
|
|
resolve();
|
|
}).catch(error => {
|
|
reject(error);
|
|
});
|
|
});
|
|
},
|
|
ClearToken({commit}) {
|
|
return new Promise((resolve, reject) => {
|
|
cancelToken(getStore({name: 'user'})).then((res) => {
|
|
commit('REMOVE_USER');
|
|
commit('REMOVE_TOKEN');
|
|
resolve(res);
|
|
}).catch(error => {
|
|
reject(error);
|
|
});
|
|
});
|
|
}
|
|
},
|
|
mutations: {
|
|
SET_USER: (state, user) => {
|
|
state.user = user;
|
|
setStore({name: 'user', content: state.user});
|
|
},
|
|
REMOVE_USER: (state) => {
|
|
state.user = '';
|
|
removeStore({name: 'user'});
|
|
},
|
|
SET_TOKEN: (state, token) => {
|
|
state.token = token;
|
|
setTokenCookies(token);
|
|
},
|
|
REMOVE_TOKEN: (state) => {
|
|
state.token = '';
|
|
removeTokenCookies();
|
|
}
|
|
}
|
|
};
|
|
|
|
export default user
|