一、获取用户信息
1.定义请求用户信息接口
(1)传token的动作,在请求拦截中添加
service.interceptors.request.use((config) => {const token = store.getters.tokenif (token) {config.headers.authorization = `Bearer ${token}`}return config},(error) => {return Promise.reject(error)})
2.定义调用接口动作
在之前请求动作封装时提到过,把用户信息相关的请求动作放在一起方便管理,在store的action中
下面两个函数都返回了promise实例(async 函数返回的是promise实例),给调用者提供了后续操作的方法
login(context, userInfo) {return new Promise((resolve, reject) => {const { username, password } = userInfologin({username,password: md5(password)}).then((res) => {console.log(res)// context.commit('setToken', res.data.token)this.commit('user/setToken', res.token)router.push('/')resolve(res)}).catch((error) => {reject(error)})})}},async getUserInfo() {try {const userInfo = await profile()this.commit('user/setRoles', userInfo)return userInfo} catch (error) {return Promise.reject(error)}}
3.在权限拦截时触发动作
此动作触发时机为,用户登录后,进入非白名单页面,检查是否系统保存了用户信息,没有的话,调用该接口
