From bd8d88e5e984e59a5c895ec1a254e3dbae1f9f21 Mon Sep 17 00:00:00 2001
From: xieb <vip_xiaobin810@163.com>
Date: Tue, 21 Jan 2025 14:55:39 +0800
Subject: [PATCH] 修复
---
src/main/java/org/springblade/modules/auth/endpoint/BladeTokenEndPoint.java | 23 +++++++++++++++++++++--
1 files changed, 21 insertions(+), 2 deletions(-)
diff --git a/src/main/java/org/springblade/modules/auth/endpoint/BladeTokenEndPoint.java b/src/main/java/org/springblade/modules/auth/endpoint/BladeTokenEndPoint.java
index f297393..21075c4 100644
--- a/src/main/java/org/springblade/modules/auth/endpoint/BladeTokenEndPoint.java
+++ b/src/main/java/org/springblade/modules/auth/endpoint/BladeTokenEndPoint.java
@@ -35,10 +35,14 @@
import org.springblade.core.tenant.annotation.NonDS;
import org.springblade.core.tool.support.Kv;
import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.RandomType;
+import org.springblade.core.tool.utils.StringUtil;
import org.springblade.core.tool.utils.WebUtil;
+import org.springblade.modules.auth.granter.SmsCodeTokenGranter;
import org.springblade.modules.auth.provider.ITokenGranter;
import org.springblade.modules.auth.provider.TokenGranterBuilder;
import org.springblade.modules.auth.provider.TokenParameter;
+import org.springblade.modules.auth.sms.MobTechSmsSend;
import org.springblade.modules.auth.utils.TokenUtil;
import org.springblade.modules.system.entity.UserInfo;
import org.springframework.web.bind.annotation.*;
@@ -72,6 +76,8 @@
public Kv token(@ApiParam(value = "租户ID", required = true) @RequestParam String tenantId,
@ApiParam(value = "账号", required = true) @RequestParam(required = false) String username,
@ApiParam(value = "密码", required = true) @RequestParam(required = false) String password,
+ @ApiParam(value = "手机号", required = true) @RequestParam(required = false) String phone,
+ @ApiParam(value = "手机验证码", required = true) @RequestParam(required = false) String code,
@ApiIgnore @RequestHeader(name = TokenUtil.DEPT_HEADER_KEY, required = false) String deptId,
@ApiIgnore @RequestHeader(name = TokenUtil.ROLE_HEADER_KEY, required = false) String roleId) {
@@ -89,13 +95,18 @@
.set("grantType", grantType)
.set("refreshToken", refreshToken)
.set("userType", userType)
- .set("deptId", deptId).set("roleId", roleId);
+ .set("deptId", deptId).set("roleId", roleId)
+ .set("phone", phone)
+ .set("code", code);
ITokenGranter granter = TokenGranterBuilder.getGranter(grantType);
UserInfo userInfo = granter.grant(tokenParameter);
if (userInfo == null || userInfo.getUser() == null) {
- return authInfo.set("error_code", HttpServletResponse.SC_BAD_REQUEST).set("error_description", "用户名或密码不正确");
+ if (grantType.equals(SmsCodeTokenGranter.GRANT_TYPE))
+ return authInfo.set("error_code", HttpServletResponse.SC_BAD_REQUEST).set("error_description", "手机号码未绑定账号");
+ else
+ return authInfo.set("error_code", HttpServletResponse.SC_BAD_REQUEST).set("error_description", "用户名或密码不正确");
}
if (Func.isEmpty(userInfo.getRoles())) {
@@ -129,6 +140,14 @@
return Kv.create().set("key", key).set("image", specCaptcha.toBase64());
}
+ @GetMapping("/oauth/smsCode")
+ @ApiOperation(value = "发送短信验证码")
+ public String sms(@ApiParam(value = "手机号", required = true) @RequestParam String phone) {
+ String result = MobTechSmsSend.requestData(phone, StringUtil.random(4, RandomType.INT));
+ // 将key和base64返回给前端
+ return result;
+ }
+
@GetMapping("/oauth/clear-cache")
@ApiOperation(value = "清除缓存")
public Kv clearCache() {
--
Gitblit v1.9.3