vue路由守卫 拦截登录权限

import router from './router'
import { getCookie } from '@/utils/cookie'
import { Message } from 'element-ui'

router.beforeEach((to, from, next) => {
  if (to.path === '/login') {
    next()
  } else {
    const hasUserInfo = getCookie('user_info') ? JSON.parse(getCookie('user_info')) : false
    if (hasUserInfo) {
      next()
    } else {
      Message({
        message: '请登录',
        type: 'error',
        duration: 5 * 1000
      })
      router.push('/login')
    }
  }
})

hasUserInfo 是判断是否登录的标识。如果有的话,就next()顺利跳转,否则就跳转到登录页面。

你可能感兴趣的:(vue路由守卫 拦截登录权限)