ModStartBlog v6.7.0后台管理优化和页面宽度调整
ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用,支持后台一键快速安装,让开发者能快的实现业务功能开发。系统完全开源,基于 Apache 2.0 开源协议。
顺晟科技
2022-09-15 20:31:24
33
由于最近在做一个项目,在做的途中,遇到了很多很疑惑的问题,首先我要做的程序描述最简单的话:是一个同时拥有后台管理系统,前台及前台用户有自己的个人中心,查看自己参与的活动,功能很简单。
开发环境:laravel+vue3+mysql+redis
后端的权限是很常见的RABC权限设计,使用Laravel开发
问题1:
前台注册的用户,是不可以在后台管理系统登录的,这该怎么实现呢?
起初我认为这是一个很简单的问题,无非就是判断用户是前台用户还是后台用户,但是想了想,发现,如果这样设计,后续会有很多问题。
首先我想到的几个问题如下:
前台用户和后台用户是否分离?
1. 使用两个数据表,一个管理员用户表,一个普通用户表
2. 使用一个数据表,然后分离认证
3. 使用两个后端项目,一个后台管理系统的后端项目,一个前台的后端项目
4. 使用一个数据表,然后给用户添加一个前后台用户字段
我想这些答案都是可以解决的,具体看自己需求,可是我不需要这种答非所问的答案
对于上面4个解决方法,我有别的观点:
首先是使用两个数据表:对于这种设计,应对的应该是后台用户多,前台用户多,最好是设计为两个数据表,我想这种对于后台用户只有几个管理员,和运营,活动发布者来说,并不需要。而且后台的权限是rabc,可以说是只对管理员来设计这种模式吗?
使用一个数据表,然后分离认证:分离认证,很有意思,比如在使用jwt-auth token这种认证方式的情况下,这种认证在设计之初是没有考虑到多用户认证的,所以如果在后端写两种认证方式的话,很多接口需要重新定义或者定制两个来针对不同认证下用户的请求的。
使用两个后端项目,一般来说,大型项目一般是使用两个后端项目,但是很多平常的项目都是使用一个后端项目,如果是两个后端项目那么就很好解决了,但是使用一个呢?毕竟这种小项目使用两个后端项目,总感觉有点大材小用的感觉。
使用一个数据表添加字段,这种方式说实话,很白。
请问,我该怎么设计这种呢?很迷茫也疑惑,希望有后端大佬可以帮到我。
一般是选择1比较好。
我接手过的几个前后台项目都是这样的,如果你说特别小的项目其实无所谓,但是一旦考虑到以后的扩展性等等,其他几个选择都是有很大问题的。
共用一个数据表肯定会带来冗余、浪费、认证安全性问题,实际上建两个表也没多费什么功夫,现在laravel里面的认证库都很全了,基本不用你造什么轮子,如果说你从用户侧考虑不想让管理员建两个账户麻烦,你完全可以给超管设计一个指令比如一键给前台用户生成后台用户,或者反过来,密码可以照搬或者生成随机的让去改。
同时因为rabc只有后台用户有,前台用户没有,所以把前后台放一个表就不太符合表关联的逻辑了
至于使用两个后端项目,超大型项目可能会考虑,但是一般没必要,你如果不用微服务、内部接口等方式,迟早前台和后台的项目会涉及到代码复用,很麻烦。
使用1的设计方式,还可以给后台用户加一个可选的关联前台用户的字段,这样就可以获取到一些前台用户才有的属性比如昵称、头像等用于后台展示,如果需要的话。
数据表没必要做分离,用户表+权限表来实现权限控制。
后端项目是否拆分看项目大小,接口需要做区分,toC侧和toB侧接口权限要求不一样就可以了
20
2023-02
17
2022-11
09
2022-11
19
2022-10
15
2022-09
15
2022-09