能不能说下后台的权限管理和菜单管理一般怎么做?

2019 年 7 月 15 日
 laravel

我用 laravel,一直没做过权限管理和菜单管理,有哪些 best practice 吗? 比如要实现后台某个登录用户只能显示自己有权限的菜单,该如何做。

12194 次点击
所在节点    PHP
30 条回复
kchum
2019 年 7 月 15 日
laravel-admin 不够用吗?
laravel
2019 年 7 月 15 日
@kchum 自己设计呢?
yiqiao
2019 年 7 月 15 日
@laravel 菜单加个路由名,去和用户拥有的权限列表匹配
ben1024
2019 年 7 月 15 日
权限 RABC + 中间件拦截
菜单 路由反射
mirrorpen
2019 年 7 月 15 日
我们后台用的 vue+element,接口用 laravel,前两个月刚增加了这个需求
我是这么做的,需要 3 张表,admin_user(后台用户表)、admin_role(角色表)、admin_module(后台模块表),把后台菜单放进模块表里,然后给每个后台用户设置一个角色+权限菜单放入角色表
plp
2019 年 7 月 15 日
我们是 role 表+menu 表+rolemenu 表
brust
2019 年 7 月 15 日
RABC
不过数据上的权限 就有点...
比如 100 条记录 权限低的只能看 部分条数 一两个字段,最高权限是所有字段左右条数
不知道 v 友有什么解决方案
guyeu
2019 年 7 月 15 日
一般都是`用户<-多对多->角色<-多对多->权限`模型,权限表里每一项权限对应一个或多个菜单项。
laravel
2019 年 7 月 15 日
言射言射大家
southsala
2019 年 7 月 15 日
简单点的就是 8 楼说得,复杂点的可以岗位设置权限(主岗位、兼职岗位)、部门设置权限、角色设置权限、用户组设置权限、直接给用户设置权限,具体看需要
pota
2019 年 7 月 15 日
RABC + 反射 + 中间间 通过反射控制权限颗粒度 路由显示依据权限控制
zorichen
2019 年 7 月 15 日
同好奇下... 页面 /菜单 /按钮权限 和 数据权限 分离,主流方案是什么
rockyou12
2019 年 7 月 15 日
@zorichen 就不该分,一个资源对一个接口,ui 上也要对上。同种资源返回的数据不同就在后端建立不同的 dto,用不同的接口返回。

这样 ui 的元素和后端接口都能映射上。前后端用两套权限设计后面维护铁定会爆炸的
Yuicon
2019 年 7 月 15 日
非常的麻烦 我看好多都是字符串匹配
NilXuan
2019 年 7 月 15 日
从框架选择上来说,后端使用 Spring Security 框架;
从设计上来说是显式的(对资源保护、对行为授权)的 RBAC 模型;
从流程上来说是用户登录后,返回主页面,然后再向后台(这一步为普通的菜单数据库查询)请求相关菜单、按钮的信息(如链接、图标)返回给前端。
至此可实现前端的权限管理。
当然,对于后台接收到的请求,可以在 Spring Security 里再加一层后端验证,防止接口泄露后的非法调用。(以上步骤,实现过一个简单的管理 demo )
最佳实践的话,今天在 github 上看到一个项目,https://github.com/elunez/eladmin。
huijiewei
2019 年 7 月 15 日
我一般用 ACL,RBAC 对于大部分中小型项目来说太重太繁琐了
Takamine
2019 年 7 月 15 日
找一个 CMS 后台管理系统,看一下他的数据库表和代码实现:doge:。
techone
2019 年 7 月 15 日
推荐你个授权库:Laravel Authorization ( https://github.com/php-casbin/laravel-authz )
支持 acl、rbac、基于 restful 的访问控制。
ericgui
2019 年 7 月 15 日
@Takamine 有道理
ifconfig
2019 年 7 月 15 日
推荐 zizaco/entrust,歪果仁用过都说好

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

https://v2ex.ih06.com/t/582982

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

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

© 2021 V2EX