import { ACCESS_TOKEN, USER_ID, USER_INFO } from '@/store/mutation-types' import storage from '@/utils/storage' import * as LoginApi from '@/api/login' import * as UserProfileApi from '@/api/love-user-profile.js' import { alipayLogin } from '@/api/login.js' import { getUser, updateUser } from '@/api/user.js' // 登陆成功后执行 const loginSuccess = ({commit,dispatch}, data) => { const { access_token, user } = data // 过期时间30天 const expiryTime = 30 * 86400 // 保存tokne和userId到缓存 storage.set(USER_ID, user.userId, expiryTime) storage.set(USER_INFO, user, expiryTime) storage.set(ACCESS_TOKEN, access_token, expiryTime) // 记录到store全局变量 commit('SET_TOKEN', access_token) commit('SET_USER_ID', user.userId) commit('SET_USER', user) dispatch('ConnectSocket') console.log("user: ",user); } const user = { state: { // 用户认证token token: '', // 用户ID userId: null, // 用户 userInfo: null, userProfile: null }, mutations: { SET_TOKEN: (state, value) => { state.token = value }, SET_USER_ID: (state, value) => { state.userId = value }, SET_USER: (state, value) => { state.userInfo = value storage.set(USER_INFO, value) } }, actions: { GetUserInfo({commit}, data){ getUser().then(res => { if (res.code == 0 && res.data.username != 'www') { commit('SET_USER', res.data) } }) }, GetUserProfile({state, commit}, data) { }, // 用户登录 (普通登录: 输入手机号和验证码) Login({ commit,dispatch }, data) { return new Promise((resolve, reject) => { LoginApi.login(data) .then(response => { const result = response.data loginSuccess({commit,dispatch}, result) resolve(response) }) .catch(reject) }) }, // 微信小程序一键授权登录 (获取用户基本信息) LoginMpWx({ commit, dispatch }, data) { return new Promise((resolve, reject) => { LoginApi.loginMpWx({ form: data }, { isPrompt: false }) .then(response => { const result = response.data loginSuccess({commit, dispatch}, result) resolve(response) }) .catch(reject) }) }, // 支付宝小程序一键授权登录 (获取用户基本信息) LoginMpAlipay({ commit }, data) { return new Promise((resolve, reject) => { alipayLogin({ data }, { isPrompt: false }) .then(response => { const result = response.data loginSuccess(commit, result) resolve(response) }) .catch(reject) }) }, // 微信公众号一键授权登录 (获取用户基本信息) LoginWxOfficial({ commit }, data) { return new Promise((resolve, reject) => { LoginApi.loginWxOfficial({ form: data }, { isPrompt: false }) .then(response => { const result = response.data loginSuccess(commit, result) resolve(response) }) .catch(reject) }) }, // 微信小程序一键授权登录 (授权手机号) LoginMpWxMobile({ commit, dispatch }, data) { console.log("data: ",data); return new Promise((resolve, reject) => { LoginApi.loginMpWxMobile(data) .then(response => { const result = response.data console.log("result999999: ",result); console.log("commit: ",commit); loginSuccess({commit, dispatch}, result) resolve(response) }) .catch(reject) }) }, // 退出登录 Logout({ commit,dispatch }, data) { const store = this return new Promise((resolve, reject) => { if (store.getters.userId > 0) { // 删除缓存中的tokne和userId storage.remove(USER_ID) storage.remove(ACCESS_TOKEN) storage.remove(USER_INFO) // 记录到store全局变量 commit('SET_TOKEN', '') commit('SET_USER_ID', null) commit('SET_USER', null) resolve() } dispatch('CloseSocket') }) }, setUserInfo({ commit }, data) { commit('SET_USER', data) }, setToken({ commit }, data) { commit('SET_TOKEN', data) }, setUserId({ commit }, data) { commit('SET_USER_ID', data) } } } export default user