背景
用户服务是对使用gateway的客户进行管理的服务,想使用gateway的用户通过门户网站进行注册,登陆之后申请API进行测试调用。
用户服务包括以下几个功能:
- 个人用户相关:个人用户注册,登录,注销
机构用户相关:
- 管理端录入用户-发送激活验证码-用户去激活画面凭借手机号和机构号激活,激活的同时生成密钥对和appSecret。
- 登录
- 申请API
- 查看api调用情况
- 查看AppSecret,上传机构公钥,下载平台公钥
- 内网用户相关:管理端录入并激活,没有密钥对,只有appSecret
机构用户状态转移图:
已录入2(发送激活短信,修改用户信息,销户)-待激活3(可发送激活验证码,修改用户信息,销户)-已激活1(修改用户信息,销户,修改密码,登陆)-已销户0。不同的状态对应机构和管理员可进行不同的操作。
在信息录入的时候,需要进行的校验:密码强度;机构号格式;手机号格式;用户名格式;邮箱格式。
用户服务涉及敏感性息,应避免用户密码被泄漏,因此关于安全性考虑如下:
- 用户在注册、登录等需要传输密码的场合,密码均加密传输
- 密码在数据库中加密保存
- 设置密码时,检查密码强度,至少六位数字及大小写字母的组合
- 用户1分钟内登录失败5次及以上就锁定用户,24小时内无法再次登录,避免用户名泄漏后被暴力破解
- 用户在登录时,增加图片验证码。图片验证码使用后即失效
- 机构用户激活/用户找回密码时使用到手机验证码,手机验证码有效期为5分钟,每分钟最多发一次,输错5次即失效
- 如果用户名或密码错误,弹出“用户名或密码”错误,而不是“用户名不存在”,“密码错误”等提示信息,避免枚举用户名或机构号
技术细节的实现:
- 密码加密传输
- 密码在数据库中加密保存
- 图片验证码
- 手机验证码的有效期和发送次数
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。