java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > springboot账户注册逻辑

springboot项目账户注册逻辑功能实现

作者:肆仟

这篇文章主要介绍了springboot项目账户注册逻辑功能实现,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧

记录一下实现注册逻辑功能,方便以后回顾。

逻辑如下:

    /**
     * 用户注册
     * @param userAccount
     * @param userPassword
     * @param checkPassword
     * @return
     */
    @Override
    public long userRegister(String userAccount, String userPassword, String checkPassword) {
        // 1. 验证
        // 非空校验
        if (StringUtils.isAnyEmpty(userAccount, userPassword, checkPassword)){
            return -1;
        }
        // 账户、密码长度校验
        if (userAccount.length() < 4 || userPassword.length() < 8){
            return -1;
        }
        // 账户不能包含特殊字符校验
        if (userAccount.matches(".*[^a-zA-Z0-9].*")){
            return -1;
        }
        // 密码与验证密码是否相同
        if (!userPassword.equals(checkPassword)){
            return -1;
        }
        // 验证账户是否重复。
        // 这里放到最后校验的作用:当账户包含特殊字符时,无需对进行一次数据库查找操作,减少资源浪费
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("userAccount", userAccount);
        long count = userMapper.selectCount(queryWrapper);
        if (count > 0){
            return -1;
        }
        // 2. 加密
        // 加盐
        final String SALT = "lyj";
        String newPassword = DigestUtils.md5DigestAsHex((SALT + userPassword).getBytes(StandardCharsets.UTF_8));
        // 3. 插入数据库
        User user = new User();
        user.setUserAccount(userAccount);
        user.setAvatarUrl("");
        user.setGender(0);
        user.setUserPassword(newPassword);
        user.setUserStatus(0);
        user.setIsDelete(0);
        int saveResult = userMapper.insert(user);
        if (saveResult != 1){
            return -1;
        }
        return user.getId();
    }

tips:这里在校验时,可以将校验账户是否重复注册放在校验的最后一步,当账户包含特殊字符时,无需对进行一次数据库查找操作,减少资源浪费。

到此这篇关于springboot项目账户注册逻辑功能实现的文章就介绍到这了,更多相关springboot账户注册逻辑内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文