diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java
index 029a24a..7c7b424 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java
@@ -4,8 +4,9 @@ import com.ruoyi.common.constant.CacheConstants;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.domain.model.LoginBody;
import com.ruoyi.common.core.redis.RedisCache;
-import com.ruoyi.common.utils.sign.Base64;
+import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.uuid.IdUtils;
import com.ruoyi.system.service.ISmsService;
import com.ruoyi.system.service.ISysConfigService;
@@ -13,10 +14,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.RandomStringUtils;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestPart;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
import java.util.concurrent.TimeUnit;
@@ -38,9 +36,13 @@ public class SmsController {
@Autowired
private ISmsService iSmsService;
- @PostMapping("sendSms")
+ @PostMapping("/sendSms")
@ApiOperation("短信发送接口")
- public AjaxResult sendSms(@RequestPart String phone) {
+ public AjaxResult sendSms(@RequestBody LoginBody loginBody) {
+ String phone = loginBody.getPhone();
+ if(StringUtils.isEmpty(phone)){
+ return AjaxResult.error("请输入手机号码!");
+ }
AjaxResult ajax = AjaxResult.success();
boolean captchaEnabled = configService.selectCaptchaEnabled();
ajax.put("captchaEnabled", captchaEnabled);
@@ -54,7 +56,16 @@ public class SmsController {
String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + uuid;
String smsCode = generateCode();
redisCache.setCacheObject(verifyKey, smsCode, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES);
- iSmsService.sendSmsOne(phone, smsCode);
+
+ String[] phoneNumber = new String[]{phone};
+ String[] params = new String[]{smsCode};
+// String status = iSmsService.sendSms(phoneNumber, params);
+ if("Ok".equals("Ok")){
+ System.out.println(phone + "sms code = "+smsCode);
+ System.out.println(phone + "sms code = "+smsCode);
+ System.out.println(phone + "sms code = "+smsCode);
+ System.out.println(phone + "sms code = "+smsCode);
+ }
ajax.put("uuid", uuid);
return ajax;
}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
index fd639e9..0bc0c76 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
@@ -56,7 +56,7 @@ public class SysLoginController
{
AjaxResult ajax = AjaxResult.success();
// 生成令牌
- String token = loginService.loginSms(loginBody.getUsername(), loginBody.getCode(),
+ String token = loginService.loginSms(loginBody.getPhone(), loginBody.getSmsCode(),
loginBody.getUuid());
ajax.put(Constants.TOKEN, token);
return ajax;
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
index 5a82199..b332ac1 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
@@ -122,6 +122,7 @@ public class SysLoginService
AuthenticationContextHolder.setContext(authenticationToken);
// 该方法会去调用UserDetailsServiceImpl.loadUserByUsername
authentication = authenticationManager.authenticate(authenticationToken);
+
}
catch (Exception e)
{
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISmsService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISmsService.java
index fef5963..03040ad 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISmsService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISmsService.java
@@ -10,7 +10,7 @@ public interface ISmsService {
* @param params
* @return
*/
- String sendSms(String[] phoneNumber, String[] params) throws TencentCloudSDKException;
+ String sendSms(String[] phoneNumber, String[] params);
/**
* 验证验证码
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SmsServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SmsServiceImpl.java
index 8340742..8d93fb4 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SmsServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SmsServiceImpl.java
@@ -25,7 +25,7 @@ public class SmsServiceImpl implements ISmsService {
private StringRedisTemplate redisTemplate;
@Override
- public String sendSms(String[] phoneNumber, String[] params) throws TencentCloudSDKException {
+ public String sendSms(String[] phoneNumber, String[] params) {
SendSmsRequest req = new SendSmsRequest();
req.setSignName(tencentCloudProperties.getSignName());
req.setSmsSdkAppId(tencentCloudProperties.getSmsSdkAppId());
@@ -34,7 +34,12 @@ public class SmsServiceImpl implements ISmsService {
* 示例如:+8613711112222, 其中前面有一个+号 ,86为国家码,13711112222为手机号,最多不要超过200个手机号 */
req.setPhoneNumberSet(phoneNumber);
req.setTemplateParamSet(params);
- final SendSmsResponse resp = tencentCloudProperties.smsClient().SendSms(req);
+ final SendSmsResponse resp;
+ try {
+ resp = tencentCloudProperties.smsClient().SendSms(req);
+ } catch (TencentCloudSDKException e) {
+ throw new ServiceException(e.getMessage());
+ }
// 输出json格式的字符串回包
System.out.println(SendSmsResponse.toJsonString(resp));
return resp.getSendStatusSet()[0].getCode();
@@ -52,20 +57,16 @@ public class SmsServiceImpl implements ISmsService {
@Override
public void sendSmsOne(String phone, String smsCode) {
- try {
- /*验证手机号是否存在*/
- if(false){
- throw new ServiceException("手机号不存在,请联系管理员注册!");
- }
- String[] phoneNumber = new String[]{phone};
- String[] params = new String[]{smsCode};
- String status = sendSms(phoneNumber, params);
- System.out.println(status + "sms code = "+smsCode);
- if("Ok".equals(status)){
- redisTemplate.opsForValue().set(phone, smsCode);
- }
- } catch (TencentCloudSDKException e) {
- throw new ServiceException(e.getMessage());
+ /*验证手机号是否存在*/
+ if(false){
+ throw new ServiceException("手机号不存在,请联系管理员注册!");
+ }
+ String[] phoneNumber = new String[]{phone};
+ String[] params = new String[]{smsCode};
+ String status = sendSms(phoneNumber, params);
+ System.out.println(status + "sms code = "+smsCode);
+ if("Ok".equals(status)){
+ redisTemplate.opsForValue().set(phone, smsCode);
}
}
diff --git a/ruoyi-ui/src/api/login.js b/ruoyi-ui/src/api/login.js
index cfc5c6b..2d0ff38 100644
--- a/ruoyi-ui/src/api/login.js
+++ b/ruoyi-ui/src/api/login.js
@@ -59,7 +59,10 @@ export function getCodeImg() {
})
}
-export function sendSms(data) {
+export function sendSms(phone) {
+ const data = {
+ phone
+ }
return request({
url: '/sendSms',
headers: {
diff --git a/ruoyi-ui/src/store/modules/user.js b/ruoyi-ui/src/store/modules/user.js
index cdbab1e..0a7568d 100644
--- a/ruoyi-ui/src/store/modules/user.js
+++ b/ruoyi-ui/src/store/modules/user.js
@@ -1,4 +1,4 @@
-import { login, logout, getInfo } from '@/api/login'
+import { login, loginSms, logout, getInfo } from '@/api/login'
import { getToken, setToken, removeToken } from '@/utils/auth'
const user = {
@@ -49,6 +49,21 @@ const user = {
})
})
},
+ // 登录
+ LoginSms({ commit }, userInfo) {
+ const phone = userInfo.phone.trim()
+ const smsCode = userInfo.smsCode
+ const uuid = userInfo.uuid
+ return new Promise((resolve, reject) => {
+ loginSms(phone, smsCode, uuid).then(res => {
+ setToken(res.token)
+ commit('SET_TOKEN', res.token)
+ resolve()
+ }).catch(error => {
+ reject(error)
+ })
+ })
+ },
// 获取用户信息
GetInfo({ commit, state }) {
diff --git a/ruoyi-ui/src/views/login.vue b/ruoyi-ui/src/views/login.vue
index a5ec19b..8765747 100644
--- a/ruoyi-ui/src/views/login.vue
+++ b/ruoyi-ui/src/views/login.vue
@@ -77,7 +77,7 @@
auto-complete="off"
placeholder="验证码"
style="width: 63%"
- @keyup.enter.native="handleLogin"
+ @keyup.enter.native="submitForm"
>
@@ -87,7 +87,7 @@