(编写中)Java 项目设计(二):核心功能点设计

外部挂链管理

面包屑管理

权限体系设计

数据存储安全

姓名、身份证、手机号、银行卡号等信息采用数据加密存储,Mybatis提供了加解密框架(Hibernate也有)

用户认证设计

本地登录

采用钉扫码、手机短信登录、账密验证码三种方式,几种方式在设计时注意的点简单罗列下

钉扫码登录(最优)

https://developers.dingtalk.com/document/app/scan-qr-code-to-log-on-to-third-party-websites

手机短信登录(其次)

输入手机号,获取验证码。使用 phone+type 做 key,验证码n分钟内有效,若验证码未被消费掉,则不重复发短信,直接把老的返回出去

POST /user/phoneVerificationCode?phone={phone}&type=phonelogin

登录接口如下

POST /user/phoneLogin?phone={phone}&v={verification code}

账密登录(最好只给管理员用)

账密登录一定要加验证码,验证码可以是网页验证码

GET /user/verificationCode

也可以做成手机验证码。输入手机号,获取验证码。使用 phone+type 做 key,验证码n分钟内有效,若验证码未被消费掉,则不重复发短信,直接把老的返回出去

POST /user/phoneVerificationCode?username={username}&phone={phone}&type=login

登录接口如下

POST /user/login?username={username}&password={md5(password)}&v={verification code}&vtype=verificationCode|phoneVerificationCode

若是验证码或密码在n分钟内连续错m次,限制用户再登录,解除限制的条件为管理员解锁或等待x分钟

忘记密码

输入手机号,获取验证码。使用 phone+type 做 key,验证码n分钟内有效,若验证码未被消费掉,则不重复发短信,直接把老的返回出去

POST /user/phoneVerificationCode?username={username}&phone={phone}&type=forgetpsd

输入新密码(2次一致性在前端做校验),修改密码接口:

POST /user/changepsd?phone={phone}&password={md5(password)}&v={phone verification code}

SSO 单点登录

第三方授权登录

参考这篇文章 OAuth2.0安全的第三方授权登录机制

统一用户


转载请注明来源。 欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。 可以在下面评论区评论,也可以邮件至 sharlot2050@foxmail.com。

文章标题:(编写中)Java 项目设计(二):核心功能点设计

字数:545

本文作者:夏来风

发布时间:2021-04-28, 13:18:36

原始链接:http://www.demo1024.com/blog/java-project-design-02/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。