一、后端登录逻辑,检测账户密码是否合法及密码输入是否正确
视频链接:
网址:
第三节:【视频】后端登录逻辑,检测账户密码是否合法及密码输入是否正确视频链接:-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;