xieb
2025-01-21 bd8d88e5e984e59a5c895ec1a254e3dbae1f9f21
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() {