From a497693b825444575921311045e74ba1bdaf1c28 Mon Sep 17 00:00:00 2001 From: ZouLiFu Date: Fri, 22 Jan 2021 09:56:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=AA=8C=E8=AF=81=E7=A0=81?= =?UTF-8?q?=20=E4=B8=BA=E7=82=B9=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _web/src/components/verifition/api/index.js | 6 +- _web/src/views/userLoginReg/Login.vue | 15 +++-- .../auth/controller/SysLoginController.java | 27 -------- .../provider/CaptchaCacheServiceProvider.java | 66 +++++++++---------- .../src/main/resources/application.yml | 3 +- 5 files changed, 46 insertions(+), 71 deletions(-) diff --git a/_web/src/components/verifition/api/index.js b/_web/src/components/verifition/api/index.js index c0eb28e7..b7e06313 100644 --- a/_web/src/components/verifition/api/index.js +++ b/_web/src/components/verifition/api/index.js @@ -6,8 +6,8 @@ import { axios } from '@/utils/request' // 获取验证图片 以及token export function reqGet(data) { return axios({ - url: '/captcha/code', - method: 'get', + url: '/captcha/get', + method: 'post', data }) } @@ -15,7 +15,7 @@ export function reqGet(data) { // 滑动或者点选验证 export function reqCheck(data) { return axios({ - url: '/captcha/code/check', + url: '/captcha/check', method: 'post', data }) diff --git a/_web/src/views/userLoginReg/Login.vue b/_web/src/views/userLoginReg/Login.vue index 86a845ce..e5325916 100644 --- a/_web/src/views/userLoginReg/Login.vue +++ b/_web/src/views/userLoginReg/Login.vue @@ -204,19 +204,19 @@ export default { } = this state.loginBtn = true - const validateFieldsKey = customActiveKey === 'tab1' ? ['account', 'password'] : ['mobile', 'captcha'] if (this.tenantOpen) { validateFieldsKey.push('tenantCode') } validateFields(validateFieldsKey, { force: true }, (err, values) => { + this.loginParams = values + // 是否开启验证码 + if (this.captchaOpen) { + this.$refs.verify.show() + state.loginBtn = false + return + } if (!err) { - this.loginParams = values - // 是否开启验证码 - if (this.captchaOpen) { - this.$refs.verify.show() - return - } const loginParams = { ...values } delete loginParams.account loginParams[!state.loginType ? 'email' : 'account'] = values.account @@ -242,6 +242,7 @@ export default { */ verifySuccess(params) { this.loginParams.code = params.captchaVerification + console.log(this.loginParams) this.Login(this.loginParams).then((res) => this.loginSuccess(res)) .catch(err => this.requestFailed(err)) .finally(() => { diff --git a/xiaonuo-base/xiaonuo-system/src/main/java/com/cn/xiaonuo/sys/modular/auth/controller/SysLoginController.java b/xiaonuo-base/xiaonuo-system/src/main/java/com/cn/xiaonuo/sys/modular/auth/controller/SysLoginController.java index 6afc5a65..4f178c89 100644 --- a/xiaonuo-base/xiaonuo-system/src/main/java/com/cn/xiaonuo/sys/modular/auth/controller/SysLoginController.java +++ b/xiaonuo-base/xiaonuo-system/src/main/java/com/cn/xiaonuo/sys/modular/auth/controller/SysLoginController.java @@ -25,10 +25,8 @@ XiaoNuo采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注 package com.cn.xiaonuo.sys.modular.auth.controller; import cn.hutool.core.lang.Dict; -import com.anji.captcha.model.common.ResponseModel; import com.anji.captcha.model.vo.CaptchaVO; import com.anji.captcha.service.CaptchaService; -import com.cn.xiaonuo.core.consts.CommonConstant; import com.cn.xiaonuo.core.context.constant.ConstantContextHolder; import com.cn.xiaonuo.core.context.login.LoginContextHolder; import com.cn.xiaonuo.core.exception.AuthException; @@ -130,31 +128,6 @@ public class SysLoginController { return new SuccessResponseData(ConstantContextHolder.getCaptchaOpenFlag()); } - /** - * @Description 获取验证码 - * @Date 2021/1/21 15:25 - * @author Jax - * @return ResponseModel - **/ - @GetMapping("/captcha/code") - public ResponseModel getCode() { - CaptchaVO vo = new CaptchaVO(); - vo.setCaptchaType(CommonConstant.IMAGE_CODE_TYPE); - return captchaService.get(vo); - } - - /** - * @Description 校验前端验证码 - * @Date 2021/1/21 15:26 - * @author Jax - * @param captcha - * @return ResponseModel - **/ - @PostMapping("/captcha/code/check") - public ResponseModel check(@RequestBody CaptchaVO captcha) { - return captchaService.check(captcha); - } - /** * @Description 校验验证码 * @Date 2021/1/21 15:27 diff --git a/xiaonuo-base/xiaonuo-system/src/main/java/com/cn/xiaonuo/sys/provider/CaptchaCacheServiceProvider.java b/xiaonuo-base/xiaonuo-system/src/main/java/com/cn/xiaonuo/sys/provider/CaptchaCacheServiceProvider.java index 710a10fb..9ba84bd0 100644 --- a/xiaonuo-base/xiaonuo-system/src/main/java/com/cn/xiaonuo/sys/provider/CaptchaCacheServiceProvider.java +++ b/xiaonuo-base/xiaonuo-system/src/main/java/com/cn/xiaonuo/sys/provider/CaptchaCacheServiceProvider.java @@ -13,36 +13,36 @@ import java.util.concurrent.TimeUnit; * @Author Jax * @Date 2021/1/21 16:27 **/ -//public class CaptchaCacheServiceProvider implements CaptchaCacheService { -// -// private static final String REDIS = "redis"; -// -// @Autowired -// private StringRedisTemplate stringRedisTemplate; -// -// @Override -// public void set(String key, String value, long expiresInSeconds) { -// stringRedisTemplate.opsForValue().set(key, value, expiresInSeconds, TimeUnit.SECONDS); -// } -// -// @Override -// public boolean exists(String key) { -// return stringRedisTemplate.hasKey(key); -// } -// -// @Override -// public void delete(String key) { -// stringRedisTemplate.delete(key); -// } -// -// @Override -// public String get(String key) { -// return stringRedisTemplate.opsForValue().get(key); -// } -// -// @Override -// public String type() { -// return REDIS; -// } -// -//} +public class CaptchaCacheServiceProvider implements CaptchaCacheService { + + private static final String REDIS = "redis"; + + @Autowired + private StringRedisTemplate stringRedisTemplate; + + @Override + public void set(String key, String value, long expiresInSeconds) { + stringRedisTemplate.opsForValue().set(key, value, expiresInSeconds, TimeUnit.SECONDS); + } + + @Override + public boolean exists(String key) { + return stringRedisTemplate.hasKey(key); + } + + @Override + public void delete(String key) { + stringRedisTemplate.delete(key); + } + + @Override + public String get(String key) { + return stringRedisTemplate.opsForValue().get(key); + } + + @Override + public String type() { + return REDIS; + } + +} diff --git a/xiaonuo-main/src/main/resources/application.yml b/xiaonuo-main/src/main/resources/application.yml index feabf299..0623b856 100644 --- a/xiaonuo-main/src/main/resources/application.yml +++ b/xiaonuo-main/src/main/resources/application.yml @@ -59,5 +59,6 @@ jodconverter: #验证码相关配置 aj: captcha: - type: clickword #验证码类型 为点选 + cache-type: local #分布式部署需要 自己实现CaptchaCacheService 使用redis需要配置redis相关配置 + type: clickword #验证码类型 为点选 blockPuzzle 为滑块验证码 font-type: 宋体