繼續學習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();
}