【从0到1打造vue element-ui管理后台 】 第十四课 加入路由守卫

225 阅读1分钟

第十四课 加入路由守卫

用户在未登录或者退出后不让访问非登录页面,解决方案是用路由守卫来判断。

一、在src/permission.js,新增文件

import router from './router/index.js'
import {getUserInfo} from "./api/login"

router.beforeEach((to,from,next)=>{
    const token = localStorage.getItem("manager-user");
    //没有获取到token
    if(!token){
        if(to.path !=='/login'){
            next({path:'/login'})
        }else{
            next()
        }
    }else{
        if(to.path =='/login'){
            next()
        }else{
            const userinfo = localStorage.getItem('manager-user');
            if(userinfo){
                next()
            }else{
                getUserInfo(token).then(response=>{
                    const respUser = response.data
                    if(respUser.flag){
                        localStorage.setItem('manager-user',JSON.stringify(respUser))
                        next()
                    }else{
                        next({path:'/login'})
                    }
                })
            }
        }
    }
})

二、在全局main.js中引入

import './permission'

三、在src/components/AppMain/index.vue,

修改判断信息,当然你也可以在路由配置上加入redirect,重定向home页面

 <el-breadcrumb separator-class="el-icon-arrow-right" v-show="$route.path !='/home' && $route.path !='/'">
 
 
 path: '/',
 name: 'Layout',
 redirect:'home',《------
 component: Layout,