后台管理、WEB网页前端、微信端(API)统一权限管理 [ 2.0 版本 ]
正在做一个项目,有后台管理、WEB网页前端、微信端(API),客户希望我们开发的权限管理可以统一管理所有路由权限。想了好久,都不知道怎么做比较合适。看各位兄弟姐妹有什么好的建议没啊?
我目前想到的思路如下(请各位指点一下。):
环境:
高级版2.0
加安装两个扩展:
dmstr/yii2-adminlte-asset
mdmsoft/yii2-admin
思路一:
在common配置中配置:
'authManager' => [
'class' => 'yii\rbac\DbManager',
],
后台管理、WEB网页前端、微信端(API)都用一套rbac,为避免路由重名,后台管理、WEB网页前端、微信端(API)的路由都设置为唯一的,比如都有article/index,则分别加前缀给予区分,barticle/index、faticle/index、aarticle/index;
思路二:
user、assignment、item、item_child、rule都做三套,分别给后台管理、WEB网页前端、微信端(API)使用
思路三:
在common配置中的params中配置
'mdm.admin.configs' => [
'advanced' => [
'app-backend' => [
'@common/config/main.php',
'@common/config/main-local.php',
'@backend/config/main.php',
'@backend/config/main-local.php',
],
'app-frontend' => [
'@common/config/main.php',
'@common/config/main-local.php',
'@frontend/config/main.php',
'@frontend/config/main-local.php',
],
],
],
然后修改部分源码。
哪种方式好像都太费劲,感觉有些不对劲,恳请各位帮忙指点一下。谢谢!
共 2 个回答
-
用户有几种用户(表)?
如果只有一种用户,那就用同一个rbac,那只要在三个项目分别添加同一个过滤器就是了,过滤器用can方法检查权限即可。共 3 条回复Michael_Mo 回复于 2018-01-05 17:52 回复情况是这样,后台是公司管理员、员工、合作伙伴用户,web前端和微信前端是会员,但合作伙伴存在既要用后台,也会用前端,即既是商家,又是消费者。过滤起来还是挺费劲。其实我初步感觉,应该都使用一套rbac,但路由能区分是不同的应用。但目前问题是想我思路三提的,那种方式要修改部分源码,怕改成问题来。
Michael_Mo 回复于 2018-01-06 22:39 回复思路1和3是共用一个用户表,思路2是2个用户表,后台1个,web和微信共用1个。对于客户来说,他们是希望可实现统一管理用户和权限即可。
-
这个问题我之前考虑过,我最后只把RBAC给后台用了,前台不用了。因为我发现我不管怎么弄,总感觉画风不对。
共 2 条回复Michael_Mo 回复于 2018-01-06 22:43 回复同感啊!web前端和微信前端,如要设置权限都不知道菜单界面怎么处理才好。如果后台能统一管理用户、路由、菜单、权限分配就可完美解决这个问题。但问题是现在没有好的方法可以实现统一管理。
Michael_Mo
最后登录:2018-05-05
在线时长:18小时56分
- 粉丝1
- 金钱260
- 威望0
- 积分440