model_user - TimYi/FengHuang GitHub Wiki
用户分类设计概述
用户是自然人在系统中的映射,任何种类的用户都作为自然人被映射为系统
中相同的user实体。
由于存在不同用户的不同行为,需要为用户进行分类。分类的方式通过权限
管理实现。例如管理员用户就是拥有管理员权限的用户。
注册和登录
通过注册接口,输入以字母或者汉字开头,2~10位字母和数字或汉字组成的用户名,登录密码,手机
号和短信验证码完成注册。
用户的绑定手机号和绑定邮箱都必须是唯一的。
登录:调用登录接口,通过用户名密码方式获取身份标识token,token会更换和过期。
其中可以用用户名、手机号、或者邮箱替代用户名的作用。
身份验证:调用需要验证身份的接口时,将token值放在http header中的fhzj_auth_token字段中。
由于一些兼容性的原因,将token值放在请求参数的token字段中也能通过身份验证,会被逐步抛弃。
注册完成提醒:通过留言和短信提醒用户。内容为:{user}您好,您已经成功注册凤凰筑家会员。
找回密码
手机短信找回密码:用户申请找回密码,要求用户输入用户名、手机号、图形验证码。
用户将用户名、手机号、短信验证码提交到指定接口,获取用户名、修改密码凭据(validater)。
用户进入修改密码界面,两次输入新密码,将用户名,validater,两次输入的新密码提交,经过验
证之后,返回修改密码成功。
工人用户
工人用户拥有一些工人用户特有的字段信息,不能只通过权限处理。
系统中把这样的信息当做资源处理,工人信息作为一种资源,和唯一的用户关联。
拥有工人权限的用户,可以访问、编辑(可选)自己的工人信息。可以访问工人相关接口(权限控制)。
可以为添加工人设置单独的接口,封装以下整个过程:
1、创建用户
2、为用户分配工人权限
3、添加工人信息。
当系统功能更加多样,用户类型不断膨胀时,统一的用户概念,和权限-资源方式的扩展可以保证系统设
计上的统一。
用户信息完整性
在预约抢购等场景中,要求用户必须填写必要的信息才能进行相应操作,因此需要信息完整性的概念。
用户信息填写以下字段后认为完整:
realName,真实姓名
mobile,手机号