6.11软工日报
继续学习satoken
//用户登录方法
@Override
public String login(LoginDto loginDto) {
// 先检验验证码
String codeRedis = redisTemplate.opsForValue().get(loginDto.getCodeKey());
if (codeRedis==null){
throw new ResultException(555,"验证码不存在");
}
if (!codeRedis.equals(loginDto.getCodeValue().toLowerCase())) {
throw new ResultException(555, "验证码错误");
}
// 验证码正确,删除redis中的验证码
redisTemplate.delete(loginDto.getCodeKey());
// 用户登录
User sysUser = this.getOne(new LambdaQueryWrapper<User>().eq(User::getUsername, loginDto.getUsername()));
if(sysUser==null){
throw new ResultException(555,"用户不存在");
}
String md5 = SaSecureUtil.md5(loginDto.getPassword());
if (!md5.equals(sysUser.getPassword())){
throw new ResultException(555,"密码错误");
}
//根据用户id登录,第1步,先登录上
StpUtil.login(sysUser.getId());
// 第2步,获取 Token 相关参数
SaTokenInfo tokenInfo = StpUtil.getTokenInfo();
// 第3步,返回给前端
return tokenInfo.getTokenValue();
}