mirror of
https://gitee.com/y_project/RuoYi-Cloud.git
synced 2026-01-31 05:51:56 +08:00
[feat] 短信验证码获取接口
This commit is contained in:
@@ -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>
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 校验验证码
|
* 校验验证码
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 校验验证码
|
* 校验验证码
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user