user.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. import { login, logout, getInfo } from '@/api/login';
  2. import { getToken, setToken, removeToken } from '@/utils/auth';
  3. const user = {
  4. state: {
  5. token: getToken(),
  6. name: '',
  7. avatar: '',
  8. roles: []
  9. },
  10. mutations: {
  11. SET_TOKEN: (state, token) => {
  12. state.token = token;
  13. },
  14. SET_NAME: (state, name) => {
  15. state.name = name;
  16. },
  17. SET_AVATAR: (state, avatar) => {
  18. state.avatar = avatar;
  19. },
  20. SET_ROLES: (state, roles) => {
  21. state.roles = roles;
  22. }
  23. },
  24. actions: {
  25. // 登录
  26. Login({ commit }, userInfo) {
  27. const email = userInfo.email.trim();
  28. return new Promise((resolve, reject) => {
  29. login(email, userInfo.password).then(response => {
  30. const data = response.data;
  31. setToken(data.token);
  32. commit('SET_TOKEN', data.token);
  33. resolve();
  34. }).catch(error => {
  35. reject(error);
  36. });
  37. });
  38. },
  39. // 获取用户信息
  40. GetInfo({ commit, state }) {
  41. return new Promise((resolve, reject) => {
  42. getInfo(state.token).then(response => {
  43. const data = response.data;
  44. commit('SET_ROLES', data.role);
  45. commit('SET_NAME', data.name);
  46. commit('SET_AVATAR', data.avatar);
  47. resolve(response);
  48. }).catch(error => {
  49. reject(error);
  50. });
  51. });
  52. },
  53. // 登出
  54. LogOut({ commit, state }) {
  55. return new Promise((resolve, reject) => {
  56. logout(state.token).then(() => {
  57. commit('SET_TOKEN', '');
  58. commit('SET_ROLES', []);
  59. removeToken();
  60. resolve();
  61. }).catch(error => {
  62. reject(error);
  63. });
  64. });
  65. },
  66. // 前端 登出
  67. FedLogOut({ commit }) {
  68. return new Promise(resolve => {
  69. commit('SET_TOKEN', '');
  70. removeToken();
  71. resolve();
  72. });
  73. }
  74. }
  75. };
  76. export default user;