vue-router 鉴权 守卫

时间:2025-02-18 08:55:45
  • //路由配置文件
  • import router from './router'
  • import store from './store'
  • //需要安装nprogress
  • import NProgress from 'nprogress'
  • import 'nprogress/'
  • //禁用进度环
  • ({ showSpinner: false })
  • // 路由白名单
  • const whiteList = ['/login']
  • //全局前置守卫
  • ((to, from, next) => {
  • NProgress.start()
  • //注意,要过滤掉/login路径,不是的话会造成无限next()死循环
  • if (to.path === '/login') {
  • return
  • }
  • //路由白名单直接跳过
  • if ((to.path) !== -1) {
  • next();
  • return;
  • }
  • //鉴权拦截操作
  • let token = ('token')
  • if (token) {
  • let permissions =
  • if (!permissions || permissions.length === 0) {
  • ('GetUserPermissions').then( async () => {
  • next({ ...to, replace: true })
  • }).catch(err => {
  • next('/login')
  • })
  • return
  • }
  • next()
  • } else {
  • next('/login')
  • }
  • })
  • //全局后置守卫
  • (() => {
  • ()
  • })