前后端分离下Vue用户控制权限

2019-07-31  本文已影响0人  傑仔
//route.js
//关键代码 在route跳转之前查询最新用户相关的权限等信息,进行逻辑判断
router.beforeEach((to, from, next) => {
  store.commit('setRouterLoading', true)

  if (to.name === 'login') {
    to.params.redirectRouterName = from.name
    next()
    return
  }
  store.dispatch('getCurrentUser').then(() => {
    // 未登录,需要登录跳转到登录页面
    if (to.meta.requiresAuth && !store.state.isLogin) {
      next({
        name: 'login'
      })
      return
    }
    // 已经登录,查询用户状态
    if (store.state.isLogin) {
      store.dispatch('getCompanyAuditStatus').then(() => {
        next()
      })
    } else {
      next()
    }
  }).catch(() => {
    // 未登录,需要登录跳转到登录页面
    if (to.meta.requiresAuth && !store.state.isLogin) {
      next({
        name: 'login'
      })
    } else {
      next()
    }
  })
})


store.js
actions: {
    // 查询当前登录用户
    getCurrentUser ({ commit }) {
      return new Promise((resolve, reject) => {
          ...
          resolve()
        }, err => {
          reject(err)
        })
      })
    },

  },
上一篇 下一篇

猜你喜欢

热点阅读