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.

68 lines
2.0 KiB

import md5 from 'js-md5';
import {getStore, removeCookies, removeStore, setCookies, setStore} from '@/util/store'
import {cancelToken, generateSalt, generateToken} from '@/api/user'
import website from "@/config/website";
const user = {
state: {},
actions: {
GenerateSalt({commit}, name) {
return new Promise((resolve, reject) => {
generateSalt(name).then(res => {
resolve(res.data);
}).catch(error => {
reject(error);
})
});
},
GenerateToken({commit}, form) {
let login = {
tenant: form.tenant,
name: form.name,
salt: form.salt,
password: md5(md5(form.password) + form.salt)
};
return new Promise((resolve, reject) => {
generateToken(login).then(res => {
const data = res.data;
commit('SET_TOKEN',
{
tenant: login.tenant,
name: login.name,
salt: login.salt,
token: data
}
);
resolve();
}).catch(error => {
reject(error);
});
});
},
ClearToken({commit}) {
return new Promise((resolve) => {
let token = getStore(website.token_header);
if (token && token.name) {
cancelToken(token.name);
}
commit('REMOVE_TOKEN');
resolve();
});
}
},
mutations: {
SET_TOKEN: (state, token) => {
setCookies(website.token_header, token);
setStore(website.token_header, token);
},
REMOVE_TOKEN: () => {
removeCookies(website.token_header);
removeStore(website.token_header);
}
}
};
export default user