一、用户系统

目录

1、数据表设计

2、用户认证

3、用户的信息管理


1、数据表设计

一般设计用户表会设计很多字段,虽然有些不会用到,但还是要设计进去

(1)基础认证字段

|----------|----------|-------|-------|--------|-------|----------|---|
| username | password | email | phone | avatar | roles | isActive | |
| 用户名 | 密码 | 邮件 | 电话 | 头像 | 角色 | 账号激活 | |

(2)用户个人信息

|----------|--------|------------|--------|-----------|
| realName | gender | isVerified | idCard | birthDate |
| 真实姓名 | 性别 | 是否实名认证 | 身份证号 | 出生年月日 |

(3)vip相关

|-------|---------------|
| isVip | vipExpireTime |
| 是否会员 | 会员过期时间 |

(4)配额相关(业务部分)

假如是个做ppt的,那就会有:虚拟币余额,免费剩余次数等

(5)用户行为追踪

|---------------|-------------------|
| lastLoginTime | lastLoginLocation |
| 最近登录时间 | 最近登录地点 |

(6)微信相关

|----------|-----------|------------|----------------|--------------|---------------|-----------------|
| wechatid | openid | unionid | wechatNickname | wechatAvatar | isWechatBound | wechatBoundTime |
| 最初微信标识 | 唯一标识(小程序) | 唯一标识(开放平台) | 微信昵称 | 微信头像 | 是否绑定微信 | 微信绑定时间 |

2、用户认证

(1)JWT

1.用户输入账号密码post请求,

2.后端根据账号密码查数据库将用户基本信息拿出(没有密码)

3.后端根据基本信息+jwt密钥+jwt算法生成带签token,就是类似: token类型.基本信息.验签字符串 这样的一长串字符串

4.前端post的结果会得到这个token存到本地,后续功能必须携带

5.前端下次请求携带token

6.后端处理请求前先处理这个token,用第一次同样的方式,token上的基本信息+后端jwt密钥+jwt算法,看生出来的验签字符和第一次一样不,不一样说明被改过,防止黑客将自己的普通账号改成管理员。然后后续的请求就是正常请求了,就用用户基本的信息查询数据

总结:就是之前的是用密码,来一次验证一次密码

JWT就是只验证一次密码,但是会用规则生成一个token后续就是验证token

缺点就是可能黑客会截取你本地存到token,然后用你的身份发请求,但是它好在不会修改用户身份,而且现在用https,一般也不好获取本地token

3、用户的信息管理

就是用户的个人信息的修改啊,获取,删除啥的

还有用户在该系统上的业务功能的数据,比如假如是做ppt的,那就有你用于业务的虚拟币啊,使用次数啊啥的

具体的做ppt的功能是能外一个模块,但是数据是个人数据

相关推荐
devlei13 小时前
从源码泄露看AI Agent未来:深度对比Claude Code原生实现与OpenClaw开源方案
android·前端·后端
努力的小郑15 小时前
Canal 不难,难的是用好:从接入到治理
后端·mysql·性能优化
Victor35615 小时前
MongoDB(87)如何使用GridFS?
后端
Victor35615 小时前
MongoDB(88)如何进行数据迁移?
后端
小红的布丁16 小时前
单线程 Redis 的高性能之道
redis·后端
GetcharZp16 小时前
Go 语言只能写后端?这款 2D 游戏引擎刷新你的认知!
后端
宁瑶琴17 小时前
COBOL语言的云计算
开发语言·后端·golang
普通网友17 小时前
阿里云国际版服务器,真的是学生党的性价比之选吗?
后端·python·阿里云·flask·云计算
IT_陈寒18 小时前
Vue的这个响应式问题,坑了我整整两小时
前端·人工智能·后端
Soofjan19 小时前
Go 内存回收-GC 源码1-触发与阶段
后端