前端是怎么做权限控制的?
第一种权限控制
比如现在有一些项目成员,有的项目成员是测试,这个项目成员登录项目的时候就可以看到"提交冒烟用例"按钮,但是其它的项目成员则不能够看到,这个功能是如何实现的呢?
前端会把每一个项目成员的权限存储在一个表里面,如下:
测试人员 开发人员 产品经理
A按钮权限 A按钮权限 C按钮权限
B按钮权限 F按钮权限 D按钮权限
这样的话,测试人员登录的时候就会显示出A按钮,B按钮;开发人员登录的时候就会显示A按钮,F按钮;产品经理登录的时候就会显示C按钮,D按钮。
前端只需要根据当前登录人去表里面查询对应的权限,就可以显示出当前登录人权限之内的按钮了,这就是前端的权限控制。
我自己在项目中遇到的与权限相关的需求经验
我的这个经验中,前端显示一个项目成员的对应按钮的方法就是:去后端返回的数据中查询一下测试人员,产品经理,项目经理等人,然后给这些查到的人直接分配一些具体的按钮,这是我们这里前端进行权限控制的方法,如下图:
但是这样会出现一个问题,就是当前端同时开启两个上述的页面的时候,在其中一个页面"杨絮把测试人修改成了别人",按道理来讲第二个页面中杨絮就不能再修改测试人了,因为目前的测试人已经不是杨絮了,如果页面刷新之后样杨絮就会失去“修改”按钮,只是我们页面还没刷新,所以这个时候杨絮在登录的时候,页面上还会显示这个修改按钮。现在的问题是杨絮还可以点击这个修改按钮,进行测试人的修改。
所以我现在要解决这个问题:就是在前端访问后端修改测试人的接口的时候,我在我写的后端接口里面进行一次判断:看看当前登录人是不是测试人,如果当前登录人不是测试人我不让前端调用我的接口,直接给它返回一些提示信息。