vue用户在登陆之后,怎么防止用户通过在地址栏输入url 跳转到其他页面呢。比如有abcd四个菜单。现在的权限是后台返回的事abcd的key值,假如后台只是返回了后台的ab,但是实际上cd的路由还是存在于权限表中。怎么防止用户在地址栏输入cd的地址直接访问呢
vue用户在登陆之后,怎么防止用户通过在地址栏输入url 跳转到其他页面呢。比如有abcd四个菜单。现在的权限是后台返回的事abcd的key值,假如后台只是返回了后台的ab,但是实际上cd的路由还是存在于权限表中。怎么防止用户在地址栏输入cd的地址直接访问呢
登录后可以存储一些本地的数据,在beforeEach来观察当前用户跳页面是否有该页面的权限。
当然这东西还是要靠后台来处理的,某些页面的权限不可能只是静态数据,肯定需要后台的服务的,这个时候后台会对该用户的权限进行校验,所以某些接口或者某些按钮的数据就会被禁掉,自然也就渲染不出来了。
1.从后台获取的允许访问的菜单列表储存在vuex或localStorage中
2.在router.js中对需要进行需要校验权限的页面配置meta: { requiresAuth: true }属性
3.接下来在全局路由守卫里做判断,可在main.js中编写钩子函数对路由进行判断,与后台允许访问列表的菜单匹配的路径才可进入。
可参考:https://blog.csdn.net/xyy1234...
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
2 回答4.3k 阅读✓ 已解决
4 回答4.6k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
5 回答835 阅读
3 回答1.7k 阅读✓ 已解决
给你个开箱即用的方案吧,写在 router 里: