优秀的编程知识分享平台

网站首页 > 技术文章 正文

vue2简单鉴权用户已登录,怎么拦截没权限看的页面(3)所有步骤

nanyue 2024-07-20 23:48:21 技术文章 10 ℃

(本文档有视频,图片看不清楚的可以用电脑看视频,代码地址在最下面)

注意:之前需要写才能访问主页---(涉及hash和history二种模式)

需要在router/index.js,改成history模式。这样直接就能访问

场景三: 当用户已经登录,不去点击左侧列表的导航时,而是在地址栏输入没权限看的链接时,提示其无权限访问,比如admin1,authList是他可以访问的地址,但是他并没/homepage/user/add这个打开的权限

第一步:在登录页loginPage.vue的useArr里加authList—对应用户名可以访问的链接,是指to.path,routes里的path

需要了解:ES6的includes() 方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false

eg:[1, 2, 3].includes(2); // true

第二步:把authList里写的地址,,/homepage/user/add,/homepage/user/list'都新增到路由里

一般的后台系统都是左右结构的 左边是导航 右边是内容 因为我们把导航写在了homePage组件里,那么右边内容也应该公共homePage父组件里,router-view用于标识

对应路由所渲染的位置,在router.js里这样定义

第三步:在登录页loginPage.vue的methods里,将登录成功的menuInfo, authList存localstorage里

第四步:去全局的main.js里

解决思路:根据已登录用户,访问的链接(to.path)跟可访问链接的内容(用户的authtlist)进行对比,如果存在则可以访问 不存在则提示无权限 用户可访问链接存在用户信息的authList

代码:如果只根据menuInfo来判读是否登录,若删除authList不删除menuInfoauthList,再刷新authList会是null authList.split 就会报错****************************

验证下:比如我用admin1,

去访问他没权限的内容/homepage/user/add

访问他有权限的内容/homepage/user/list,是可以访问的

新增对应的页面

具体代码可以访问我的ma云: https://gitee.com/wuweizi213/frontend_learning/tree/master/learnfromqqvue%E7%AE%80%E5%8D%95%E9%89%B4%E6%9D%832

Tags:

最近发表
标签列表