当前位置:   article > 正文

功能详细设计文档模板_1. 需求描述 此功能用于用户登录,当用户进入页面页面时,首先会加载出一段验证码以

1. 需求描述 此功能用于用户登录,当用户进入页面页面时,首先会加载出一段验证码以

简介

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

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

1. 需求描述

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

2.功能拆分

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

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生成验证码图片
  • 1
  • 2
  • 3
  • 4

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.返回登录结果
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

5. 页面设计

一般包含几方面的内容:

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

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

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

6. 跑批设计

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

7. 数据库设计

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

8. 安全设计

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

9. 性能设计

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/705606
推荐阅读
相关标签
  

闽ICP备14008679号