From 90389c7d1ff29b39cc8224fbc070b675d918e0f6 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Mon, 24 Apr 2023 21:07:31 +0800
Subject: [PATCH] 手机验证码登录实现,登录认证相关逻辑调整
---
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/controller/SmsController.java | 25 ++++++++++++++++++++++++-
1 files changed, 24 insertions(+), 1 deletions(-)
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/controller/SmsController.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/controller/SmsController.java
index 9a8347b..5fc83a9 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/controller/SmsController.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/controller/SmsController.java
@@ -7,8 +7,11 @@
import cn.gistack.sm.sms.util.SmsUtils;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
+import org.springblade.core.redis.cache.BladeRedis;
import org.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.*;
+
+import static cn.gistack.common.cache.CacheNames.PHONE_KEY;
/**
* 短信发送控制层
@@ -23,6 +26,14 @@
private final ISmsRecordService smsRecordService;
+
+ private final BladeRedis bladeRedis;
+
+ @GetMapping("/test")
+ public void setRedis(){
+ saveCodeForRedis("super_admin","123456");
+ }
+
/**
* 发送登录验证码
* request 必须包含手机号(多个手机号以英文逗号分隔)
@@ -33,18 +44,30 @@
public R test(@RequestBody SMSSendRequest request){
//设置模板相关信息
String templateId = "2431012205498";
- String content = "您的登录验证码是" + SmsUtils.getRandNumber() + ",5分钟内有效,请勿泄漏,如非本人操作,请忽略此信息";
+ String randNumber = SmsUtils.getRandNumber();
+ String content = "您的登录验证码是" + randNumber + ",5分钟内有效,请勿泄漏,如非本人操作,请忽略此信息";
request.setMessageContent(content);
request.setTemplateId(templateId);
// 发送操作
String sendMsg = SmsUtils.sendMsg(request);
// 记录发送记录操作
saveSendRecord(request,sendMsg);
+ // 保存验证码到 redis
+ saveCodeForRedis(request.getUserNumber(),randNumber);
// 返回发送信息
return R.data(sendMsg);
}
/**
+ * 保存验证码到 redis
+ * @param userNumber
+ * @param randNumber
+ */
+ private void saveCodeForRedis(String userNumber, String randNumber) {
+ bladeRedis.setEx(PHONE_KEY + userNumber,randNumber,5*60L);
+ }
+
+ /**
* 发送记录保存
* @param request 发送信息
* @param sendMsg 响应数据
--
Gitblit v1.9.3