用户管理中心--注册登录功能的设计

news2025/5/14 1:14:06

文章目录

  • 1.定义接口
  • 2.注册逻辑的实现
    • 2.1引入依赖
    • 2.2注册逻辑
    • 2.3测试方法
  • 3.登录逻辑的实现
    • 3.1接口的定义与实现
    • 3.2记录用户的登录态
    • 3.3脱敏处理

1.定义接口

在userService这个接口里面定义我们的userRegister方法,表示的是我们的用户的注册的相关的逻辑;

2.注册逻辑的实现

2.1引入依赖

我一般是选择这个使用数量最多的这个版本:

然后就是把这个里面的代码cv到pom.xml文件里面的依赖包下面,如下图所示

2.2注册逻辑

接下来就是我们用户注册的一系列的要求的实现,其中就会使用到上面引入的这个common这个包里面的方法:

这个StringUtils就是上面的引入的依赖包的一个方法,如果你不引入上面的依赖,这个方法就是无法使用的,他通过调用里面的isAnyBlank想要达到的目的就是判断这几个输入的参数是不是空的,如果这个用户名,密码和校验密码有一个是空的,这个时候返回-1,证明这个是不符合要求的;

下面的是要求账户的长度>=4,而且我们的密码盒校验密码的长度都不可以小于8(这些都是需要集合具体的需求进行设计的,并不是笃定不变的)

账号里面不允许出现特殊的字符,这个validPattern里面的就是特殊字符,我们的账号里面不可以包含这些特殊的字符;其次就是密码和二次校验的密码必须完全一样,否则不符合要求;

每一个用户的账号是独一无二的,因此这个需要我们检查这个用户的账号在之前的用户里面是不是使用过了,如果是重复的,就是不符合要求,这个就需要返回-1;

密码的加盐加密就是让加密之后的密码更加复杂,因为我们的密码不可以是明文的,必须要进行相关的加密;

对于每一个用户的信息,建立用户实体,存储用户的信息,result表示这个用户的信息是不是存储成功;

2.3测试方法

我们找一些特殊的情况,看看这个接口的功能是不是正常的,如果是正常的,这些特殊的情况的返回值都是-1,我们使用assertequals方法和这个-1进行比较,正常是这个断言是没问题的,因为result就是等于-1;

3.登录逻辑的实现

3.1接口的定义与实现

下面的这个就是我们定义的接口:我们的这个接口的返回值就是这个对象user里面的相关的信息,需要用户输入的就是用户的账号和密码,我们根据这个用户是不是存在返回这个对应的信息;

其实下面的这个是上面的接口的实现,这个里面的很多方法在我们的注册逻辑里面都是使用过的,例如这个账号的名字和密码不可以是空的,长度的限制要求,不可以含有特殊的字符,对于密码进行加盐处理,这些在我们的注册逻辑里面都是使用过的,无非是登录逻辑里面不需要进行两次密码输入的校验之类的操作,这个还是要根据实习的情况来修改的;

3.2记录用户的登录态

往请求的session里面设置值,从这个session里面读取值,因此我们需要在这个登录的方法里面添加一个参数,这个时候接口和实现类都是需要修改的;

我们为了记录用户的登录态,这个时候需要在方法里面添加下面的这个参数;

3.3脱敏处理

之前我也是经常听说“脱敏”这个词语,但是今天是第一次体会到他是如何使用的

脱敏:实际上就是保护我们的用户的敏感信息,比如说用户登录,结果你返回信息的时候把用户的密码暴露出去了,这个显然就不是很好,脱敏处理就是处理需要返回的内容,把不需要返回的内容屏蔽掉;

下面我特意没有删除,就是把这个密码注释掉,这样就可以保护这个密码隐私,不被看到,脱敏里面的敏指的就是相关的敏感数据;

里面的USER_LOGIN_STATE是一个键,这个setattribute是设置键值对的内容,我们的这一行代码相当于往这个键值对里面填入内容,这个USER_LOGIN_STATE就是键,也就是我们熟知的key,然后这个值就是我们的用户脱敏之后的这个user对象的相关属性值;

我们的key是在全局进行定义的,这个SALT是我们的盐值,就是混淆数据的,这个在注册和登录里面都用到了,所以我们把这个设置成为静态全局变量进行使用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2298308.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java虚拟机面试题:JVM调优

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编…

MySQL 插入替换语句(replace into statement)

我们日常使用 insert into 语句向表中插入数据时,一定遇到过主键或唯一索引冲突的情况,MySQL的反应是报错并停止执行后续的语句,而replace into语句可以实现强制插入。 文章目录 一、replace into 语句简介1.1 基本用法1.2 使用set语句 二、注…

基于单片机的多功能热水器设计(论文+源码)

2.1系统方案设计 基于单片机的多功能热水器系统,其系统框图如图2.1所示。主要采用了DS18B20温度传感器,HC-SR04超声波模块,STC89C52单片机,液晶,继电器等来构成整个系统。硬件上主要通过温度传感器进行水温的检测&…

DeepSeek R1本地部署 DeepSeek Api接口调用 java go版本

1、本地ollama的API接口 接着上一章所本地部署deepseek,这一章我们调用ollama api 对应的curl: curl --request POST \--url http://localhost:11434/api/generate \--header Accept: */* \--header Accept-Encoding: gzip, deflate, br \--header Con…

基于SSM+uniapp的购药小程序+LW示例参考

1.项目介绍 系统角色:管理员、普通用户功能模块:用户管理、商家管理、药品管理、药品信息管理、发票管理、订单管理、收藏管理、购物车、充值、下单等技术选型:SSM,Vue(后端管理web),uniapp等测…

YOLO11网络结构以及改进1

YOLO11 1.YOLO11网络结构图在哪里?2.对应的网络结构图3.每一个模块详解3.1 Conv模块3.2关于卷积模块3.3 关于给各个模块指定参数的细节 4.加入CBAM 1.YOLO11网络结构图在哪里? 2.对应的网络结构图 3.每一个模块详解 3.1 Conv模块 位置:ultr…

AI 编程私有化部署,在使用 cline 时,可能无法避免私隐的泄漏问题

摘录:Cline Privacy Policy https://github.com/cline/cline/blob/main/docs/PRIVACY.md Key Points Cline operates entirely client-side as a VS Code extensionNo code or data is collected, stored, or transmitted to Clines servers 问题是&#xff1a…

计算机视觉-局部特征

一、局部特征 1.1全景拼接 先用RANSAC估计出变换,就可以拼接两张图片 ①提取特征 ②匹配特征 ③拼接图像 1.2 点的特征 怎么找到对应点?(才能做点对应关系RANSAC) :特征检测 我们希望找到的点具有的特征有什么特…

数据结构:Map Set(一)

目录 一、搜索树 1、概念 2、查找 3、插入 4、删除 二、搜索 1、概念及场景 2、模型 (1)纯key模型 (2)Key-Value模型 三、Map的使用 1、什么是Map? 2、Map的常用方法 (1)V put(K …

关闭浏览器安全dns解决访问速度慢的问题

谷歌浏览器加载速度突然变慢了?检查安全DNS功能(DoH)是否被默认开启。 谷歌浏览器在去年已经推出安全DNS功能(即DoH) , 启用此功能后可以通过加密的DNS增强网络连接安全性。例如查询请求被加密后网络运营商将无法嗅探用户访问的地址,因此对于增强用户的…

C语言-章节 4:函数的定义与声明 ——「神秘法术的卷轴」

少年和 Inta 成功通过运算符与表达式的考验后,继续在函数城堡中探索。他们沿着一条闪烁着幽光的走廊前行,走廊两侧的墙壁上刻满了奇异的符号,仿佛在诉说着古老的编程秘密。终于,他们来到了一间神秘的房间,房间中央悬浮…

47.实验室管理系统(基于SSM和html的Java项目)

目录 1.系统的受众说明 2.系统可行性分析 2.1 经济可行性 2.2 技术可行性 2.2.1 Java Web技术 2.2.2 Eclipse 2.2.3 Tomcat 2.2.4 数据库 2.2.5 Layui框架 2.2.6 SSM框架 3.系统需求分析 3.1 用户需求分析 3.2 功能需求分析 3.3 其他需求分析 4.系统设计 4.1 系…

【免费送书活动】《MySQL 9从入门到性能优化(视频教学版)》

本博主免费赠送读者3本书,书名为《MySQL 9从入门到性能优化(视频教学版)》。 《MySQL 9从入门到性能优化(视频教学版)(数据库技术丛书)》(王英英)【摘要 书评 试读】- 京东图书 这本书已经公开…

【人工智能】通过python练习机器学习中的8大算法

python一系列练习在前面几节中基本练习了一遍,本篇通过机器学习的算法加强python的训练。我印象中常用的几种算法有:线性回归、逻辑回归,决策树,向量机SVM,KNN-近邻,朴素贝叶斯,K-means&#xf…

Android Studio2024版本安装环境SDK、Gradle配置

一、软件版本,安装包附上 👉android-studio-2024.1.2.12-windows.exe👈 👉百度网盘Android Studio安装包👈 (若下载连链接失效可去百度网盘链接下载) 二、软件安装过程 ​ ​ ​ 三、准备运行…

RabbitMQ学习—day2—安装

目录 普通Linux安装 安装RabbitMQ 1、下载 2、安装 3. Web管理界面及授权操作 Docker 安装 强力推荐学docker,使用docker安装 普通Linux安装 安装RabbitMQ 1、下载 官网下载地址:https://www.rabbitmq.com/download.html(opens new window) 这…

Jenkins 新建配置Pipeline任务 三

Jenkins 新建配置Pipeline任务 三 一. 登录 Jenkins 网页输入 http://localhost:8080 输入账号、密码登录 一个没有创建任务的空 Jenkins 二. 创建 任务 图 NewItem 界面左上角 New Item 图NewItemSelect 1.Enter an item name:输入任务名 2.Select an ite…

社区版IDEA中配置TomCat(详细版)

文章目录 1、下载Smart TomCat2、配置TomCat3、运行代码 1、下载Smart TomCat 由于小编的是社区版,没有自带的tomcat server,所以在设置的插件里面搜索,安装第一个(注意:安装时一定要关闭外网,小编因为这个…

MATLAB 生成脉冲序列 pulstran函数使用详解

MATLAB 生成脉冲序列 pulstran函数使用详解 目录 前言 一、参数说明 二、示例一 三、示例二 总结 前言 MATLAB中的pulstran函数用于生成脉冲序列,支持连续或离散脉冲。该函数通过将原型脉冲延迟并相加,生成脉冲序列,适用于信号处理和系统…

概率论、组合数学知识点汇总

1、概率论知识点 全概率公式:如果事件B1,B2,…,Bn是样本空间的一个划分,则:贝叶斯定理:协方差:协方差用来衡量两个变量之间的变化趋势是否一致,公式为相关系数(Pearson)&#xff1a…