用户信息维护模块
使用token进行单客户端登录检测,前端所有请求都会携带token,所有操作前检查token是否失效(即有没有这个token)(即是否多端登录)(失效即报错,前端提示token已失效,清除储存的token,刷新页面)
用户表:
- 用户名
- 昵称
- 手机号
- 登录状态
- 头像地址
- 信誉分数
- 角色(用来鉴权)
- 创建时间
场景1 用户注册
用户信息的产生有两种方式:自主注册与后台添加。前者多为普通用户,后者多为权限需要严格控制的用户。
注册时使用的手机验证码前端发送并验证
用户注册功能面向自主注册的用户,用户需要将用户名,密码,手机号,三段信息提交至系统,系统需要保证的事有以下几点:
- 用户名与手机号必须是唯一的
- 用户名不能有非法字符
- 用户名的长度有限制(1-10)
- 用户密码需要满足规则(6-20,包含字母和数字)
- 手机号必须是合法的手机号(中国)
- 未满足以上任何一条规则的用户请求都应被拒绝,并且返回相关错误信息(发送前前端验证)
场景2 用户登录
用户登陆功能允许用户提交用户名或手机号,密码,信息给系统,系统需要保证的事有以下几点:
- 用户名与密码必须与注册时的一致,届时系统将标记用户登陆,并返回登陆成功的token
- 对于已在别处登陆的用户将其登陆状态清除(token被删除)(登录成功,别处token验证失败,返回错误,退出登录)
登陆情况的失败可能会有以下几种情况:
- 用户名与用户密码不匹配
- 用户名不存在
- 该用户已被禁止登陆(role权限变为forbidden)
- 系统暂不开放登陆功能(系统不开放)
- 系统关闭(请求超时,服务器关闭)
场景3 用户退出
用户注销功能用户处于登陆状态的用户进行退出操作,系统需要保证的事情有以下几点:
- 用户必须是登陆状态
- 用户退出后需要清除token
- 用户退出关闭websocket连接
场景4 用户密码修改
用户密码修改功能允许登陆状态下的用户进行密码修改,需要提交原始密码、新密码,系统需要保证的事情有一下几点:
- 用户必须是已经登陆的状态
- 提交的原始密码必须与上一次登陆所使用的密码匹配
- 用户密码需要满足规则
- 用户的新密码必须与旧密码不同
场景5 用户密码找回
找回时使用的手机验证码前端发送并验证
用户密码找回允许用户在未登陆的情况下找回密码,用户需要输入的信息有:用户名,手机号,新密码,系统需要做的事情有以下几件:
- 用户名与手机号必须匹配。。
- 在验证手机号发送环节用户可多次要求系统发送验证信息,但系统会控制发送间隔。
场景6 用户头像修改
用户安全邮箱修改允许用户修改头像,需要提交的信息有:头像图片、token(在header里),系统需要做的事情有以下几件:
- 验证token
- 删除上次图片
- 上传图片至oss
- 修改表
- ...
场景7 用户昵称修改
同上,头像图片换成昵称名
场景8 查询用户信息
查询用户信息允许用户根据token获得用户所有信息,需要提交的信息有:token(在header里),返回用户信息