user.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. import { wechatAuthLogin, mobileLogin, getAccessToken } from '@/services/api/auth.js'
  2. import { wxLogin } from '@/common/auth.js'
  3. import { setStorage } from '@/common/storage.js'
  4. import { objAssign } from '@/common/utils.js'
  5. const state = {
  6. // 用户信息
  7. headImgUrl: '',
  8. mobile: '',
  9. nickName: '',
  10. openId: '',
  11. userId: 0,
  12. userIdentity: -1, // 用户类型
  13. inviteUserId: '', // 分享者用户ID
  14. accessToken: '' // token
  15. }
  16. const mutations = {
  17. SET_USER_INFO: (state, userInfo) => {
  18. objAssign(state, userInfo)
  19. },
  20. SET_INVITE_USER_ID: (state, id) => {
  21. state.inviteUserId = id
  22. },
  23. SET_ACCESS_TOKEN: (state, token) => {
  24. state.accessToken = token
  25. }
  26. }
  27. const actions = {
  28. // 微信自动登录
  29. async wxAutoLogin({ commit }) {
  30. try {
  31. const code = await wxLogin() // 获取微信code
  32. const res = await wechatAuthLogin({ code }) // 微信自动登录
  33. const data = JSON.parse(res.data)
  34. commit('SET_USER_INFO', data)
  35. setStorage('USER_INFO', data)
  36. return Promise.resolve(data)
  37. } catch (e) {
  38. return Promise.reject(e)
  39. }
  40. },
  41. // 手机号注册登录
  42. async register({ commit }, resigterData) {
  43. try {
  44. const res = await mobileLogin(resigterData)
  45. const data = JSON.parse(res.data)
  46. commit('SET_USER_INFO', data)
  47. setStorage('USER_INFO', data)
  48. return Promise.resolve(data)
  49. } catch (e) {
  50. return Promise.reject(e)
  51. }
  52. },
  53. // 获取accessToken
  54. async getAccessToken({ commit }) {
  55. try {
  56. const { data } = await getAccessToken()
  57. commit('SET_ACCESS_TOKEN', data)
  58. return Promise.resolve(data)
  59. } catch (e) {
  60. return Promise.reject(e)
  61. }
  62. }
  63. }
  64. export default {
  65. namespaced: true,
  66. state,
  67. mutations,
  68. actions
  69. }