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

一、

从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;

最近更新

  1. TCP协议是安全的吗?

    2024-04-25 21:36:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-25 21:36:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-25 21:36:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-25 21:36:03       20 阅读

热门阅读

  1. 如何使用PHP进行邮件发送?

    2024-04-25 21:36:03       13 阅读
  2. 【MHA】MySQL高可用MHA介绍2-安装,配置,要求与限制

    2024-04-25 21:36:03       10 阅读
  3. C#多线程之(Thread)详解与示例

    2024-04-25 21:36:03       12 阅读
  4. MacOS - 打开 App 无法验证开发者解决方案

    2024-04-25 21:36:03       12 阅读
  5. C语言面经

    2024-04-25 21:36:03       10 阅读
  6. Linux错误(3)Linux里IP套接字sendmsg出现EPERM错误

    2024-04-25 21:36:03       10 阅读
  7. Node.js

    2024-04-25 21:36:03       9 阅读
  8. 什么是Spring容器中的组件

    2024-04-25 21:36:03       11 阅读
  9. 快速安装protoc

    2024-04-25 21:36:03       11 阅读
  10. 【使用 SLF4J 进行日志记录】

    2024-04-25 21:36:03       20 阅读
  11. 前端实现base64编码图片的导出

    2024-04-25 21:36:03       47 阅读
  12. SQLServer数据库的查询语句

    2024-04-25 21:36:03       15 阅读
  13. mybatis中foreach使用

    2024-04-25 21:36:03       17 阅读