项目背景:
还是前几篇文章中所涉及到项目,现在 才 做权限控制
不过还好,现在这个项目的业务还不复杂,还来得及,只能这样安慰自己
如下图所示:
- 在login 成功以后, 后端返回 一些用户账号的基本信息 、功能权限 和 身份权限
- 这样本身并没有什么问题,前端取到数据后,把数据存起来然后全局展示和限制就行了
- 现在问题来了,客户提了一个让我和后段都傻眼的需求
客户:
我不想从你们登录页面进,我想从我们其他系统跳进你这个系统,方便我们操作人员直接进来填数据,新增项目等等
老板:
行,没毛病!
后端:
老板,我不想学后端了,呜呜~~
我:
后端大哥,你行的,俺相信你,正道的光,照在了大地上~
综合分析:
- 小公司,没办法,客户就这样,想体验类似sso的感觉,但是呢又不愿给那个钱,李姐
- 然后,没办法,开会呗,整个什么方案才好呢?
- 最终一致通过,后端直接来跳我的页面,我把地址什么的都给后段,
- 客户不是说要填数据么?行,后端直接把参数从URL地址栏传过来,我取出来展示
- 诶,等会儿,是不是忘了一件重要的事,后端生成一个URL来进我的页面没问题
- 但是,我怎么取上面图中的那些数据呢?上面那个是login接口返回的,
- 你用户根本就不跳我的login页面啊,那不是进来了什么都没有啊,而且权限和身份我咋控制呢?
- 得,这后端开始装起来了
我给你新的接口,你判断下是不是从login进来的呗,不是你就请求我这个,返回值跟login一样
- 大哥,牛掰,行。
具体方案:
- 关于 前端如何做权限控制之类的文章网上一大堆,多看看就行了,这里就不详细展示了 前端权限控制 基本跟这个大哥思路差不多
- 但是 他们基本都用的vuex, 我不怎么喜欢用它,还是太懒了,不想学语法
- 所以,我存用户的信息,我就用了一个全局的$bus来存,还是比vuex方便一点,个人觉得,不喜勿喷
后端会生成一个类似这样的链接给用户,让用户直接进入
http://your ip :your port/api/lifecyle?account=182xxxx5981&role=in_role&op=new-prj&oppid=12345&prjname=xx天网&city=xx&county=xxxx&cons-1-com