• vue项目实现系统权限拦截


    后台管理系统权限校验需求:

    当访问系统非登录页面时,需要检验用户是否登录,如果没有登录,则跳转到登录页面。

    首先,新建一个权限文件permission.js,直接在main.js中引入

    接下来开始编写permission.js
    1:将router.js引入

    2:使用vue-router中的前置导航钩子函数:beforeEach(to,from,next)实现功能

    import router from './router/index'
    import { getUserInfo } from './api/login'
    router.beforeEach( (to,from,next) =>{
        //首先获取token值
        const token = localStorage.getItem('token')
        //没有获取到
        if(!token){
            //如果访问非登录页面,则指定跳转到/login
            if(to.path !=='/login'){
                next({ path:'/login' })
            }else{
            //如果访问登录页面
                next()
            }
        }else{
            //获取token成功
            //如果访登录页面
            if(to.path ==='/login'){
                next()
            }else{
            //如果访问非登录页面,先查看本地是否有用户信息
            const userdata = localStorage.getItem('usedata')
            //本地有用户信息,直接去目标路由
            if(userdata){
                next()
            }else{
            //本地没有用户信息,通过token获取用户信息
            getUserInfo(token).then(res=>{
                if(res.data.flag){
                    //获取用户信息成功,则进入非登录页面,否则进入登录页面
                    //保存信息
                    localStorage.setItem('usedata',JSON.stringify(res.data))
                    next()
                }else{
                    //未成功获取用户信息,重新登陆
                    next({path:'/login'})
                }
            })
            }
            }
        }
    })
    
  • 相关阅读:
    编程心得
    PC缺少一个或多个网络协议 qq可登录(win10)
    系统启动和内核管理
    实现Internet架构的dns解析
    文本处理三剑客之AWK
    SHELL脚本编程进阶
    网络协议和管理笔记
    基础知识
    进程和计划任务
    710
  • 原文地址:https://www.cnblogs.com/shemingxin/p/12487000.html
Copyright © 2020-2023  润新知