前后端分离的项目,如何前端界面如何实现权限控制?

2020-01-15 15:40:56 +08:00
 frozenway

以前 php 和 html 混合的代码,可以通过 php 权限控制函数来实现,但是前后端分离后,前端只通过 api 接口来获取数据,想来想去,每个页面几个功能,每个都调用一次 api 来确认一下是否有权限,服务器会不会扛不住?大家现在是怎样的思路?

11907 次点击
所在节点    PHP
50 条回复
slime7
2020-01-15 15:43:07 +08:00
获取用户的时候返回权限不就行了,在前端做一套权限控制内容,请求后端的时候再用权限验证一下
wednesdayco
2020-01-15 15:43:08 +08:00
有权限限制的接口负责鉴权……吧
lihongjie0209
2020-01-15 15:44:58 +08:00
这种东西肯定存全局啊, 不管是 vue 中的 vuex 或者是 基于浏览器的 storage, 只需要在登录的时候获取一下就好了.
ylsc633
2020-01-15 15:46:13 +08:00
权限真正的控制还是在服务端吧

比如 一个菜单按钮! 某类用户不允许看到! 即使你前端控制了不让看!

用户还是可以用其他方法去展示出来进行点击的!

但是点击后! 会请求到服务端! 服务端肯定要校验权限的!

简而言之! 前端做好权限相关的展示(比如菜单是否展示, 删除按钮是否可点等等 )就行了! 实际的操作(增删改查) 还是得服务端来校验
frozenway
2020-01-15 15:50:22 +08:00
要是我说我后端用的是 thinkphp 的 auth 权限认证扩展,那用户登录时怎么返回用户拥有的权限,前端该如何实现?
shintendo
2020-01-15 15:53:28 +08:00
首页获取当前用户角色 /权限,存全局,之后直接用,所有接口返回值用拦截器统一检查,无权限则提示或跳登录页
权限检查在后端接口上做
前端权限是做体验而不是做安全,所以覆盖常规使用场景即可
Erroad
2020-01-15 15:54:28 +08:00
做一套权限表、用户表、用户权限表;
做一个用户权限获取接口,前端缓存起来;
前端根据用户权限展示功能入口,后端根据用户权限进行接口鉴权
shintendo
2020-01-15 15:57:46 +08:00
@frozenway 一般总有个 getUserInfo 接口,在这里返回就行吧。前端就是加载首页(首个页面,不是 index )时调用这个接口
tyrealgray
2020-01-15 16:00:34 +08:00
搞 JWT 不就行了吗?
source
2020-01-15 16:02:17 +08:00
一般会有一个单独的接口给出路由级别的权限控制,用来告诉前端 “能做什么”
还会在其他接口上通过 jwt 之类的方式做权限检查,用来告诉前端 “不能做什么”
frozenway
2020-01-15 16:05:21 +08:00
好的,感谢各位大佬
NotFoundEgg
2020-01-15 16:14:20 +08:00
每个菜单 /按钮指定一个标识符 用 User_Menu 表关联起来(也可以中间插一层 Role 表)
根据权限标识符接口获取当前用户全部资源的标识符
根据标识符隐藏 /展示菜单 /按钮
pinyue
2020-01-15 16:17:29 +08:00
权限最终是落在后端控制。
前端只控制可见性
est
2020-01-15 16:18:46 +08:00
页面初始化的时候要返回一个可用权限列表

甚至包含页面布局配置

。。。

。。。。

。。。。。。

然后你做着做着,就发现返回的页面配置 json 高度可定制

甚至直接返回了渲染好的页面!

full-circle.
GaoGeYang
2020-01-15 16:31:13 +08:00
你可以参考一下 vue-element-admin 它的做法。
zhw2590582
2020-01-15 16:33:41 +08:00
可见性都是前端控制,现代流行框架会处理路由权限问题,假如细化到每个按钮的话那就麻烦一点,你说什么语言的话,那就是 js 了
alex321
2020-01-15 16:34:37 +08:00
你都前后端分离了,自然登录初始化用户信息的时候返回权限菜单,然后其他操作拉取和校验权限分配啊。
sarices
2020-01-15 16:44:31 +08:00
用户登录返回权限,前端根据权限做控制,后端根据用户做权限的控制
aqqwiyth
2020-01-15 16:57:02 +08:00
按钮级别的 点击&不可点击 / 隐藏&可见 每个按钮 /菜单之间有一个树的关联关系. 配置上资源与角色分离
AyanamiRei
2020-01-15 17:32:59 +08:00
fastadmin api 有这种验证, 建议看一下`

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/638153

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX