用户登录密码操作

1.由于服务器需要标识已经登录的用户,所以服务器动态生成一个独一无二的token,返回给用户.
2.用户将token保存到本地,方便下次访问时携带.
/**
* 思路:
* 1.将密码进行加密处理
* 2.根据username/password查询数据库
* 3.有值:
* 登录成功,返回秘钥
* 没有值:
* 登录失败,返回null
* @param user
* @return

 

 

@Override
public String login(User user) {
//1.获取明文
String password = user.getPassword();
//2.加密处理
String md5 = DigestUtils.md5DigestAsHex(password.getBytes());//字符串转数组getBytes
user.setPassword(md5);
//System.out.println(md5);
//3.查询数据库
QueryWrapper<User> queryWrapper = new QueryWrapper<>(user);
//4.获取数据库对象
User userDB = userMapper.selectOne(queryWrapper);
//5.判断登录是否正确 这边userDB的类型是User对象,对象只能有和没有,所以不用判断长度是否为0
if (userDB == null){
return null;
}
//6.使用UUID动态生成TOKEN,根据当前时间毫秒数+随机数,利用hash算法生成
// 几乎可以保证不重复。 UUID里面有-,所以下面将其替换成一个空的替换掉好看
String token = UUID.randomUUID().toString().replace("-", "");//先转化UUID成字符串,再去掉横线
return token;
}

上一篇:MySQL-2-如何制造百万千万级+数据


下一篇:MySQL 那些常见的错误设计规范