vue-element-plus-admin整合后端实战——实现系统登录、缓存用户数据、实现动态路由
// 假设已经有了vue-element-plus-admin的基础代码和配置
// src/store/modules/user.js
import { getToken, setToken, removeToken } from '@/utils/auth'
import { login, getUserInfo, logout } from '@/api/user'
const user = {
state: {
token: getToken(),
user: {}
},
mutations: {
SET_TOKEN: (state, token) => {
state.token = token
},
SET_USER: (state, user) => {
state.user = user
}
},
actions: {
// 登录
Login({ commit }, userInfo) {
const username = userInfo.username.trim()
return login(username, userInfo.password).then(response => {
const data = response.data
setToken(data.token)
commit('SET_TOKEN', data.token)
// 可以在这里添加登录成功的操作,比如路由跳转
}).catch(error => {
console.log(error)
})
},
// 获取用户信息
GetUserInfo({ commit, state }) {
return getUserInfo(state.token).then(response => {
const data = response.data
commit('SET_USER', data)
// 可以在这里添加缓存用户信息的操作
}).catch(error => {
console.log(error)
// 登录失败,清除token
removeToken()
// 可以在这里添加登录失败的操作,比如提示用户信息无效
})
},
// 登出
LogOut({ commit, state }) {
return logout(state.token).then(() => {
commit('SET_TOKEN', '')
commit('SET_USER', {})
removeToken()
// 可以在这里添加登出成功的操作,比如跳转到登录页
}).catch(error => {
console.log(error)
})
}
}
}
export default user
这个代码实例提供了用户模块的基本逻辑,包括登录、获取用户信息和登出操作。在登录成功后,它会设置token并缓存到localStorage,在获取用户信息时,它会将用户信息缓存到Vuex的state中。在登出时,它会清除token并重置用户信息。这个例子展示了如何在Vue.js和Element Plus Admin框架中管理用户的登录和登出。
评论已关闭