用户注册成功后,使用密码进行登录,提示密码错误。(url请求正常,json信息正常返回)数据库中保存的是使用MD5加密后的算法。
public ResultVO checkLogin(String username, String pwd) {
User user = userDAO.getUserByName(username);
// md5加密后的密码
String password = MD5Utils.md5(pwd);
System.out.println("加密后的密码是"+password);
if(user == null){
// 用户名错误
return new ResultVO(10001, "用户名错误", null);
}else {
if(user.getPassword().equals(password)) {
return new ResultVO(10000, "登录成功", user);
} else{
return new ResultVO(10002, "密码错误", null);
}
}
}
public ResultVO userRegister(String username, String pwd) {
// 1.进行用户名验证判断
User user = userDAO.getUserByName(username);
// 用户名不存在
if (user == null) {
// 向数据库中进行保存
// 密码使用MD5进行转换
String password = MD5Utils.md5("password");
System.out.println("md5加密后的密码"+password);
user = new User();
user.setUsername(username);
user.setPassword(password);
user.setUserRegtime(new Date());
user.setUserModtime(new Date());
// 向数据库中进行插入操作
int i = userDAO.insertUser(user);
// 注册成功
if(i > 0){
return new ResultVO(10000, "注册成功", null);
}else {
// 注册失败
return new ResultVO(10002, "注册失败", null);
}
// 用户名已存在
} else {
return new ResultVO(10001, "用户名已存在", null);
}
解决思路:
1.首先检查返回处的VO对象,检查代码逻辑是否正确。
2.检查数据库的密码中是否有值。
2.检查登录功能前台密码和后台密码的值,看是否一样。
3.密码不一致时, 前端密码检查 getPassword处的参数,确定是否参数错误,以及前端密码是否进行加密后比较。
4.考虑后端插入问题时,直接插入一条数据,两次生成的摘要密码一致时,基本可以确定是向工具类传入的参数有问题,检查想关参数。
问题解决:
向工具类中传入的密码写死了,导致每次生成的密码一致。
收获:考虑是向数据库传入密码时的问题时,直接重新注册一条信息,看生成的密码。