user.js 1.8 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 username = userInfo.username.trim()
  28. return new Promise((resolve, reject) => {
  29. login(username, 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.roles)
  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