求教:会员套餐和会员权限管理应该如何设计更合理

举个例子🌰
会员分多种,未注册会员、正式会员、vip 会员、vvvip 会员😄…… 等等
会员权限细分:比如商品购买,没有注册的用户是只能看但是不能购买,正式以上的才可以购买。再好比,内部活动,非注册用户看不到,正式用户能和 vip 能看到,但只能 vip 参与。其他页面只要是正式会员可以正常使用,非注册不可见

思路:
开始想的是再每个需要会员限制的地方判断权限,但如果会员不确定后期会不会增加类型或是变动权限,这样貌似维护不方便

然后再想到中间件集中判断,根据会员角色判断是否有权限。因为有的权限可以看不可用,所以需要判断请求 method,如果这样的话就需要记录不同会员拥有的路由路径和请求 method,突然感觉这貌似是 RBAC 权限控制😂 ,貌似玩大了

盘算了半天不知道如何下手更合适,所以请求论坛老司机分享一下经验🙏

————————————————
原文作者:嘿喵财运旺旺
转自链接:learnku.com/articles/48497
版权声明:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请保留以上作者信息和原文链接。

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 5

简单点,直接用户表 增加一个字段, 用户会员状态

3年前 评论
臭鼬 (楼主) 3年前
WindyLater 3年前
  1. 先定义 每个 vip 权限底下有哪些功能 用常量组配置 (如可看拍品列表可以定义成 watch-goods-list)

  2. 写一个核心方法 返回值是bool 调用这个方法的时候传入 标记(watch-goods-list ) 和当前会员等级

  3. 对比当前用户 会员等级跟 当前功能所需会员等级之间的关系 通过则返回true

4.这样增加会员功能 或者增加会员等级 就不需要去改业务逻辑上代码 只需要改这个核心方法即可

3年前 评论
臭鼬 (楼主) 3年前

直接rbac吧

以后老板要改角色权限也方便

3年前 评论
臭鼬 (楼主) 3年前
3年前 评论
臭鼬 (楼主) 3年前
  • 我也遇过这样的一个问题,当时三种角色,普通用户,激活码用户,会员。
  • 用的是中间件过滤。 不过这是建立在需要控制权限的路由不多的情况下,可以直接把关键路由记录在数据库里面
  • 如果需要控制的地方多了,建议还是直接上一套权限管理得了。。。
    CREATE TABLE `activation_permission` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `route` varchar(100) DEFAULT NULL COMMENT '路由',
    `module` varchar(30) DEFAULT NULL COMMENT '模块',
    `controller` varchar(30) DEFAULT NULL COMMENT '控制器',
    `action` varchar(30) DEFAULT NULL COMMENT '方法',
    `param` text DEFAULT NULL COMMENT '追加参数JSON',
    `name` varchar(100) DEFAULT NULL COMMENT '显示名称',
    `status` tinyint(1) DEFAULT '0' COMMENT '是否开启',
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COMMENT='激活码权限';

场景是会员拥有所有权限,激活码用户需要按模块在管理后台控制是否拥有权限。

3年前 评论
臭鼬 (楼主) 3年前
臭鼬 (楼主) 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!