周一了,博客项目开更

先做注册,登录。

先说注册:

现阶段的注册功能  无非是通过手机验证码注册,或者邮箱验证注册。还有就是通过直接使用其他比如GitHub,微信账号授权登录的(这个过些日子研究)。由于我的项目只是普通的小项目,就不打算接这些,以后再说吧~~~~

我的注册,无非是一个用户名,邮箱,密码。其中用户名设置为用户的名称,邮箱和密码用来登录,当然密码就采用目前比较常用的MD5加密的方式

代码如下

public class EncoderByMd5 {

    public static String encoderByMd5f(String str) throws NoSuchAlgorithmException, UnsupportedEncodingException {
        //确定计算方法
        MessageDigest md5 = MessageDigest.getInstance("MD5");
        BASE64Encoder base64Encoder=new BASE64Encoder();
        //加密后的字符串
        String newStr=base64Encoder.encode(md5.digest(str.getBytes("utf-8")));
        return newStr;
    }
    }

通过调用这个工具类,可以把我们的密码加密,调用的代码如下

 public Map<String, Object> registerUser(User user) throws UnsupportedEncodingException, NoSuchAlgorithmException {
        Map<String, Object> map = new HashMap<String, Object>();
        if (!RegExpUtil.isNull(user.getUsername() + "")) {
            String password = user.getPassword();
            User user1 = new User();
            user1.setPassword(EncoderByMd5.encoderByMd5f(password));
            user1.setEmail(user.getEmail());
            user1.setUsername(user.getUsername());
            Boolean ba = userRegisterService.userRegister(user1);
            if (ba) {
                map.put("status", "success");
                map.put("text", "注册成功");
            } else {
                map.put("status", "error");
                map.put("text", "注册失败,该邮箱重复注册");
            }
        } else {
            map.put("status", "error");
            map.put("text", "传参错误");
        }
        return map;
    }

期间 也判断了该邮箱是否已经注册,原理就是,先把传入的邮箱在数据库中查找一下,当然这种方式只适合目前这种自己练习的demo,如果访问太多,需要另行设计方法。




之后就是登录,

登录的逻辑是首先要判断邮箱是否注册,第二部就是 通过传入的邮箱查询到整个uesr对象,然后与传入的对象进行比较,相同就登录成功,不同就是登录失败。代码如下

 public Map<String,Object> login(String email,String password) throws UnsupportedEncodingException, NoSuchAlgorithmException {
        Map<String,Object> map=new HashMap<String, Object>();
        if (!RegExpUtil.isNull(email + "")&&!RegExpUtil.isNull(password+"")) {
            User user= userLoginService.userLogin(email);
            
            if (user.getId()==0){
                map.put("status","error");
                map.put("text","用户不存在");
            }
            else {
                if (EncoderByMd5.encoderByMd5f(password).equals(user.getPassword())) {
                    map.put("status", "success");
                    map.put("user", user.getUsername());
                    map.put("text", "登录成功");
                } else {
                    map.put("status", "error");
                    map.put("text", "密码错误");
                }
            }
        }else {
            map.put("status","error");
            map.put("text","传参错误");
        }
        return map;
    }
}

由于我们是博客项目,所以用户要想发表博客,或者发表评论,需要登录,所以我们在登录的同时,将用户的状态改变,这样接下来的代码,会用到这个登录的状态,而且我们要统计当前登录人数,都需要通过这个状态进行获取,这个我们会在接下来的代码中实现。

这只是一部分的后台代码,由于前端我也是一边学习一边使用,这里就不贴代码了,都很简单的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值