第三节课,后端登录【1】.1--本人

news/2024/10/21 20:51:20/

一、后端登录逻辑,检测账户密码是否合法及密码输入是否正确

视频链接:

网址:

第三节:【视频】后端登录逻辑,检测账户密码是否合法及密码输入是否正确视频链接:-CSDN博客

从5.1开始

这是一个Java方法,名为doLogin,接收两个参数:userAccount(用户账号)和userPassword(用户密码)。返回值类型为Yupi1。

public Yupi1 doLogin(String userAccount, String userPassword) {// 在这里实现登录逻辑
}

5.1  本人效果图:

    /**** @param userAccount   用户账户* @param userPassword  用户密码* @return   脱敏后的用户信息*/Yupi1 doLogin(String userAccount,String userPassword);

5.3 开始

此处直接顺着敲击

5.7 跑完了一部分

对应的代码步骤如下:

引用日志:写出错误

将在两个函数中都用到的变量放在最外面

手写代码如下:

        // 1.校验  账户、密码、校验码  是否包含任何真空值(包含空格或空值)// if (true 里面任意一个字段:包含空格或空值)  return -1; 就失败了if(StringUtils.isAnyBlank(userAccount,userPassword)){return null;}if (userAccount.length() < 4){return null;}if (userPassword.length() < 8 ){return null;}// 账户不能包含特殊字符// m.find();//返回true 输入的账户有 特殊字符,需重新输入String validPattern = "[`~!@#$%^&*()+=|{}':;',\\\\[\\\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]";Matcher matcher = Pattern.compile(validPattern).matcher(userAccount);if (matcher.find()){return null;}// 3.对密码进行加密(密码千万不要直接以明文存储到数据库中)// 写代码前,已测试/*** 在本项目,test 文件夹下,UserCenterApplicationTests 里面书写代码,运行测试的**    @Test*     void testDigest() throws NoSuchAlgorithmException{*         String newPassword = DigestUtils.md5DigestAsHex(("abcd" + "mypassword").getBytes());*         System.out.println(newPassword);*     }** 运行成功  输出为:(16进制)【可变】78e3504a70116aa7474d614b517809c6**/String encryptPassword = DigestUtils.md5DigestAsHex((sAlt + userPassword).getBytes());//查询用户是否存在,以及判断密码是否等于加密后的算法QueryWrapper<Yupi1> queryWrapper = new QueryWrapper<>();queryWrapper.eq("userAccount",userAccount);queryWrapper.eq("userPassword",encryptPassword);Yupi1 yupi1 = yupi1Mapper.selectOne(queryWrapper);if (yupi1 == null) {log.info("user Login failed, userAccount cannot match userPassword");return null;}long count = yupi1Mapper.selectCount(queryWrapper);return null;


http://www.ppmy.cn/news/1442528.html

相关文章

win c++使用lua环境配置 5.3.5版本

编译lua 下载lua源码&#xff0c;github仓库 使用vs编译源码&#xff0c;新建一个静态库项目(只会生成lib文件)&#xff0c;想要dll的话就新建dll项目&#xff08;有一个lib文件和dll文件&#xff09; 把lua源码下面的文件夹都是&#xff0c;复制到vs项目中 lib目录是我手动…

【前端缓存】localStorage是同步还是异步的?为什么?

写在开头 点赞 收藏 学会 首先明确一点&#xff0c;localStorage是同步的 一、首先为什么会有这样的问题 localStorage 是 Web Storage API 的一部分&#xff0c;它提供了一种存储键值对的机制。localStorage 的数据是持久存储在用户的硬盘上的&#xff0c;而不是内存。这意…

可视化智慧工厂

在科技迅猛发展的今天&#xff0c;制造业正迎来一场深刻的变革——智慧工厂的崛起。可视化智慧工厂作为其中的重要一环&#xff0c;以其直观、高效、智能的特点&#xff0c;正成为制造业转型升级的关键所在。 一、什么是可视化智慧工厂? 传统的制造业生产方式往往依赖于人工…

Unity | 集成 Protobuf(proto 转 cs 插件及序列化与反序列化)

1. 添加 dll 1. 下载 protobuf 源码 根据需要下载 protobuf 指定版本的源码&#xff0c;这里以 v3.21.12&#xff08;protobuf-csharp-3.21.12.zip&#xff09;为例&#xff1a; 下载地址&#xff1a;「https://github.com/protocolbuffers/protobuf/releases」 2. 下载 Vis…

Springboot 中RedisTemplate使用scan来获取所有的key底层做了哪些事情

直接上代码&#xff0c;围绕着代码来讨论 redisTemplate.execute((RedisCallback<Object>) (connection) -> {Cursor<byte[]> scan connection.scan(ScanOptions.scanOptions().count(2).match("*").build());scan.forEachRemaining((bytes) -> {…

有关钱包相关开发的库和依赖

Trezor 钱包 GitHub 组织&#xff1a;https://github.com/trezor说明&#xff1a;Trezor 是一款硬件加密货币钱包&#xff0c;它的团队开发了与助记词相关的许多工具和库。 Electrum 钱包 GitHub 仓库&#xff1a;https://github.com/spesmilo/electrum说明&#xff1a;Electru…

mongodb 数据库基本操作详解及示例

MongoDB 是一个基于分布式文件存储的 NoSQL 数据库&#xff0c;由 C 语言编写。相较于关系型数据库&#xff0c;MongoDB 更加灵活并且有着良好的扩展性。 以下是 MongoDB 的一些基本操作&#xff1a; 启动 MongoDB Server&#xff1a; 在终端中执行 mongod 命令来启动 MongoDB …

Flutter开发好用插件url_launcher详解-启动 URL

文章目录 url_launcher介绍安装用法错误处理自定义行为其他功能 url_launcher介绍 url_launcher 是一个 Flutter 插件&#xff0c;用于启动 URL。它支持网络、电话、短信和电子邮件方案。您可以使用它从您的 Flutter 应用程序中打开网站、拨打号码、发送短信或撰写电子邮件。 …