From 6ebe8da9b42e773f48260c6d1e0b90307bde5303 Mon Sep 17 00:00:00 2001 From: kongzy <kongzy> Date: 星期一, 27 十一月 2023 09:28:00 +0800 Subject: [PATCH] 增加验证码 --- assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysUserServiceImpl.java | 29 +++++++++++++++++++++++++++++ 1 files changed, 29 insertions(+), 0 deletions(-) diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysUserServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysUserServiceImpl.java index 9bfc0cd..6ceaac1 100644 --- a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysUserServiceImpl.java +++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysUserServiceImpl.java @@ -1,6 +1,7 @@ package com.gkhy.assess.system.service.impl; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.gkhy.assess.common.api.CommonPage; import com.gkhy.assess.common.constant.CacheConstant; @@ -57,6 +58,8 @@ @Override public AccountVO login(LoginBody loginBody) { + // 验证码校验 + validateCaptcha(loginBody.getUsername(), loginBody.getCode(), loginBody.getUuid()); UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken(loginBody.getUsername(), loginBody.getPassword(), false); Subject subject= SecurityUtils.getSubject(); String msg ; @@ -84,6 +87,32 @@ } } + /** + * 校验验证码 + * + * @param username 用户名 + * @param code 验证码 + * @param uuid 唯一标识 + * @return 结果 + */ + public void validateCaptcha(String username, String code, String uuid) + { + if(StrUtil.isBlank(code)||StrUtil.isBlank(uuid)){ + throw new ApiException("验证码或验证码标识为空"); + } + String verifyKey = CacheConstant.CAPTCHA_CODE_KEY +uuid; + String captcha = (String) redisUtils.get(verifyKey); + redisUtils.del(verifyKey); + if (StrUtil.isBlank(captcha)) + { + throw new ApiException("验证码已失效"); + } + if (!code.equalsIgnoreCase(captcha)) + { + throw new ApiException("验证码不正确"); + } + } + @Override public void logout() { String jwtToken = request.getHeader(JwtTokenUtil.USER_LOGIN_TOKEN); -- Gitblit v1.9.2