先做注册,登录。
先说注册:
现阶段的注册功能 无非是通过手机验证码注册,或者邮箱验证注册。还有就是通过直接使用其他比如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;
}
}
由于我们是博客项目,所以用户要想发表博客,或者发表评论,需要登录,所以我们在登录的同时,将用户的状态改变,这样接下来的代码,会用到这个登录的状态,而且我们要统计当前登录人数,都需要通过这个状态进行获取,这个我们会在接下来的代码中实现。
这只是一部分的后台代码,由于前端我也是一边学习一边使用,这里就不贴代码了,都很简单的。