已经做前后端分离 快一年了
技术栈趋向成熟
- vue
- vue router
- vuex
- node
- express
做出来的是单页面应用,但是在权限上一直都有问题。
现在我做权限 是 后台有一套,前端又有重复的一套,麻烦就在这里,
- 只有我对后台有请求的时候,我才知道用户到底有没有这个权限「因为前台的权限,就存在 localSorage 里面,用户可以更改」,如果请求发现没权限,还是前端 router 跳到没权限或者登录页,但是如果这个页面没有请求呢。
-
因为是一个管理系统,权限特别细,比如某些用户只有这几个目录可以看,其他用户只有那几个目录可以看,但我用的是前端路由,问题又来了。
- 前端路由一般都是配置好的,我怎么让用户一进来就跳到他自己有权限的页面的第一页。
- 如果用户直接输入 一个没有权限进入的地址 我该怎么拦截「须知我的拦截其实没有意义,因为页面都在他那里,他只需要改掉我的拦截代码就行」
这里 我现在的解决方案是
- 还是后台传给我 详细的权限,用于我铺设页面,如果这个没有权限,导航上也是没有显示的,但是这样还是可以被更改。
-
第二个 用户登录 就会跳他能看到页面的第一个。
- 首先 路由上 是全部都注册好的
- 请求之后拿到权限,然后根据权限 生成导航数组
- 然后自动页面跳到导航数组的 第一个
- 切换页面的时候,都要去根据导航数组判断他是否有这个页面权限。
但是我觉得自己的办法太笨拙,而且还是会被篡改,所以求各位解答疑惑,谢谢了。
我觉得楼主的问题应该是不存在的。
后端做了权限控制,无权看到的内容就不会返回了,即使你请求了这个接口。
前端也控制了权限,无权访问的页面,导航中就不会显示了,如果用户自己在前端修改了前端的数据,或者跳过你给的导航,直接通过url访问对应的页面,也应该不会有什么大问题,因为即使他能在前端访问到那个页面,但每个页面都有对应的内容(数据),显示内容的时候是需要请求后端的,后端没有权限,打开页面也只能是空白。
你只要后端做好了权限控制,前端无论怎么改也应该是不能获取到自己没有权限的内容的。
从数据安全的角度来说,前端可以完全不使用权限控制;如果你那里做不到这点的话,那么,你后端的权限控制肯定是有问题的。
前端的权限控制只是为了给用户更好的体检;并不是真的拿来控制权限的。