功能详细设计文档模板

简介

这篇文章可作为方案设计文档参考,读者可根据需要自行修改格式。

单点登录功能详细设计文档 V1.0.0

1. 需求描述

此功能用于用户登录,当用户进入页面页面时,首先会加载出一段验证码以及账号文本框、密码文本框、是否记住密码文本框(这就是介绍系统功能的入口),当用户输入账号密码验证码并点击登录之后,会检查账户密码是否输入规范,这就涉及到文本框空校验以及密码是否符合要求等判断。
若都符合要求之后,系统就会开始校验用户输入的信息是否正确,若账户、密码、验证码等有一环输入错误的,界面就会做出响应的响应信息,并提示用户重新输入。
若输入正确,则需要判断用户是否点击了记住密码文本框,若选择记住密码,则下次记住密码时无需再输入密码就可以完成直接登录。若没有记住密码则反之。

2.功能拆分

1. 制作一个登录界面
2. 登录界面需要实时渲染验证码,需要集成Kaptcha技术。
3. 一个获取验证码的接口
4. 登录接口
5. 单点登录校验验证码时,需要将用户输入验证码与用户点击登录时页面验证码进行比对,由于界面验证码实时刷新,所以我们需要想办法存住验证码,所以我们需要集成redis将密码进行缓存

3.流程图

:白色是前端流程,蓝色是后端流程

3.1页面加载时,获取验证码流程图

在这里插入图片描述

3.2登录流程图

在这里插入图片描述

4. 接口设计

4.1获取验证码接口

4.1.1接口
描述获取验证码图片
请求地址/admin/kaptcha /image-code/{imageCodeToken}
请求方式GET
入参参数名称类型说明
imageCodeToken验证码tokenString必传,由前端生成,尽可能实现唯一
出参参数名称类型说明
验证码流数据验证码图片stream一张图片的流数据
4.1.2处理逻辑
	1. 前提“集成kaptcha,引入jar,增加配置类
	2. 使用kaptcha的createText生成验证码字符串
	3. 以imgToken为key,text为value存入redis中,设置市场为300s
	4. 使用kaptcha的createImage生成验证码图片

4.2 获取验证码接口

4.2.1 接口
描述登录接口
请求地址/admin/login
请求方式POST
入参参数名称类型说明
loginName用户名String必传
loginName用户名String必传
password密码String必传
code验证码String必传
imgToken验证码tokenString必传,用于从redis中捞取密码
出参参数名称类型说明
id用户IDString
loginName账号String
name昵称String
token登录凭证String
resource权限资源List
4.2.2 处理逻辑
1.对传入的密码进行二次加密
2.验证码校验,根据传入的imageCodeToken,到redis中获取text,
	a)获取不到,报错返回:验证码已过期
	b)获取到后,与传入的imageCode作比较
		i.相等,继续往后
		ii.不相等,返回验证码错误
3.验证码校验通过后,删除redis中的imageCodeToken
4.登录校验,根据loginName获取用户信息
	a)获取不到,打日志:用户名不存在;报错返回:用户名不存在或密码错误
	b)获取到了,比较参数密码与数据库密码
		i.相等,登录校验成功
		ii.不相等,打日志:密码不对;报错返回:用户名不存在或密码错误
5.校验通过后,加载资源权限
6.组装用户登录信息LoginUserDto
7.生成唯一token,作为用户登录标识
8.以token为key,LoginUserDto为value,存入redis中
9.返回登录结果

5. 页面设计

一般包含几方面的内容:

		如何进入页面?
		页面有哪些操作元素?
		表单有哪些校验?
		点击按钮做什么操作?
		有哪些看不见的逻辑?
		跟后端有哪些交互? 

以及本功能为例,我们可以这样写:
一般包含几方面的内容:

		如何进入页面?点击连接进入
		页面有哪些操作元素?账号框、 密码框、 验证码框、 记住我按钮、 登录按钮
		表单有哪些校验?非空校验、密码正则
		点击按钮做什么操作?验证码文本框、调用后端接口
		有哪些看不见的逻辑?校验
		跟后端有哪些交互? 获取验证码接口、获取登录接口

6. 跑批设计

	包括跑批的时间、周期、处理逻辑、关联跑批等
	可以考虑下面几个问题:
	数据量是否很大,是否需要分页?
	跑批期间数据是否会更新?
	多个跑批之间是否会有先后?
	跑批失败如何重跑?

7. 数据库设计

本次变更相关的数据库脚本

8. 安全设计

数据加密、接口加签验签、前后端参数校验、常见的漏洞处理、敏感数据处理。
以本次功能设计为例,这其中就涉及前端密码md5Salt加密

9. 性能设计

大数据量跑批,如每天的报表跑批
高访问量接口,如首页数据
大流量接口,如文件上传

### 回答1: APP详细设计文档模板用于记录APP开发过程中各个模块的设计细节的文档。它通常包含以下几个部分: 1. 引言:简单介绍APP的背景和目标,包括项目的背景和概述、目标用户功能特点等。 2. 系统架构:描述APP的整体结构,包括各个模块的关系和功能划分,以及数据流向等。 3. 功能模块设计详细描述每个功能模块的设计,包括输入、输、算法、界面设计等。可以使用流程图、状态图等工具来展示功能模块的流程和交互。 4. 数据库设计:如果APP需要使用数据库存储数据,需要详细设计数据库的结构和关系,包括表的字段、索引、关联关系等。 5. 用户界面设计详细描述APP的用户界面设计,包括各个界面的布局、按钮和控件的功能和交互等。 6. 性能优化:描述APP在性能方面的设计和优化策略,包括响应间、内存占用、网络请求等优化措施。 7. 安全性设计描述APP在安全方面的设计,包括用户身份验证、数据加密、权限控制等安全机制。 8. 接口设计:如果APP需要与其他系统或服务进行交互,需要详细描述接口的设计和使用方式。 9. 测试计划:详细描述APP的测试策略和计划,包括功能测试、性能测试、安全性测试等。 10. 部署方案:描述APP的部署和发布方式,包括服务器需求、配置要求、发布流程等。 通过使用APP详细设计文档模板,可以帮助开发团队更好地了解和把握系统的需求设计,提高开发效率和质量,并方便后续的维护和升级工作。 ### 回答2: App详细设计文档模板通常包括以下几个部分: 1. 引言:简要介绍App的目的、背景和范围,说明设计文档的目标和约束条件。 2. 需求分析:详细描述App的功能需求,包括用户需求、系统需求以及非功能需求,如性能要求、安全需求等。 3. 架构设计:展示App的整体架构,包括组件和模块的划分以及它们之间的关系和交互。可以使用UML图表等方式来进行描述。 4. 数据库设计描述App所需的数据库结构,包括表的设计、字段定义、关系等。可以使用ER图或数据库表结构图来进行说明。 5. 用户界面设计:展示App的用户界面设计,包括各个页面的布局、交互和样式。可以使用原型设计工具或界面截图来进行说明。 6. 功能模块设计详细描述各个功能模块的设计,包括模块的职责、接口、算法等。可以使用流程图或类图来进行说明。 7. 接口设计描述App与外部系统、服务或组件的接口设计,包括数据交互格式、协议和通信方式等。 8. 安全设计:阐述App的安全设计,包括身份验证、敏感数据保护、漏洞预防等。 9. 性能设计描述App的性能设计,包括响应间、并发处理能力、资源消耗等方面的设计考虑。 10. 测试策略:说明App的测试策略和方法,包括单元测试、集成测试和系统测试等。 11. 部署与运维:描述App的部署方式和运维需求,包括服务器配置、备份策略、监控等。 12. 参考文献:列设计文档所参考的相关文献、资料和工具。 以上是App详细设计文档模板的一般内容,根据实际项目需要可以进行适当的调整和补充。 ### 回答3: APP详细设计文档模板通常包括以下几个部分: 1. 引言:介绍APP的背景和设计目的,描述该APP的目标用户群体和解决的问题。 2. 系统架构:详细说明APP的整体架构和模块划分,包括前端和后端的组件和模块,以及它们之间的交互流程。 3. 功能需求:列APP的功能需求清单,包括用户登录、注册、浏览、搜索、下单等功能详细描述。对于每个功能,还应包括输入、输和流程图等详细说明。 4. 数据库设计描述APP所需的数据库结构,包括数据库表的设计和关系,以及数据字段的定义和约束。 5. 用户界面设计:包括APP的页面布局、颜色、字体、图标等设计要求,以及每个页面功能和交互流程描述。 6. 接口设计描述APP与外部系统进行交互的方式和接口规范,比如与支付平台的支付接口、与社交媒体的分享接口等。 7. 安全性设计描述APP的安全性要求和措施,包括用户身份验证、数据加密、访问控制等安全措施的设计原则和实现方法。 8. 性能优化:描述APP的性能要求和优化策略,包括数据库访问的优化、页面加载速度的优化、接口响应间的优化等。 9. 测试计划:描述APP的测试策略和测试计划,包括功能测试、性能测试、安全性测试等的具体方案和要求。 10. 部署计划:描述APP的部署和发布计划,包括服务器环境的需求、代码发布的流程和更新策略等。 以上是APP详细设计文档模板的主要内容,可根据实际项目需求进行适当的调整和补充。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shark-chili

您的鼓励将是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值