[feat] 短信验证码获取接口

This commit is contained in:
hsdllcw
2024-08-07 10:56:50 +08:00
parent a265ca8303
commit 25613442a4
5 changed files with 98 additions and 69 deletions

View File

@@ -118,11 +118,6 @@
<version>${kotlin.version}</version> <version>${kotlin.version}</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib-jdk8</artifactId>
<version>${kotlin.version}</version>
</dependency>
</dependencies> </dependencies>

View File

@@ -1,6 +1,8 @@
package com.ruoyi.gateway.handler; package com.ruoyi.gateway.handler;
import java.io.IOException; import java.io.IOException;
import java.util.Objects;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@@ -30,8 +32,16 @@ public class ValidateCodeHandler implements HandlerFunction<ServerResponse>
AjaxResult ajax; AjaxResult ajax;
try try
{ {
switch (serverRequest.queryParam("type").orElse("image")) {
case "sms":
if (Objects.nonNull(serverRequest.queryParam("receiver").orElse(null))) {
ajax = validateCodeService.createSMSCaptcha(serverRequest.queryParam("receiver").orElse(null));
break;
}
default:
ajax = validateCodeService.createCaptcha(); ajax = validateCodeService.createCaptcha();
} }
}
catch (CaptchaException | IOException e) catch (CaptchaException | IOException e)
{ {
return Mono.error(e); return Mono.error(e);

View File

@@ -12,10 +12,15 @@ import com.ruoyi.common.core.web.domain.AjaxResult;
public interface ValidateCodeService public interface ValidateCodeService
{ {
/** /**
* 生成验证码 * 生成图片验证码
*/ */
public AjaxResult createCaptcha() throws IOException, CaptchaException; public AjaxResult createCaptcha() throws IOException, CaptchaException;
/**
* 生成短信验证码
*/
public AjaxResult createSMSCaptcha(String receiver) throws IOException, CaptchaException;
/** /**
* 校验验证码 * 校验验证码
*/ */

View File

@@ -103,6 +103,25 @@ public class ValidateCodeServiceImpl implements ValidateCodeService
return ajax; return ajax;
} }
@Override
public AjaxResult createSMSCaptcha(String receiver) throws IOException, CaptchaException {
AjaxResult ajax = AjaxResult.success();
boolean captchaEnabled = captchaProperties.getEnabled();
ajax.put("captchaEnabled", captchaEnabled);
if (!captchaEnabled)
{
return ajax;
}
// 保存验证码信息
String uuid = IdUtils.simpleUUID();
String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + uuid;
String code = captchaProducerNumber.createText();
redisService.setCacheObject(verifyKey, code, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES);
ajax.put("code", code);
ajax.put("uuid", uuid);
return ajax;
}
/** /**
* 校验验证码 * 校验验证码
*/ */