diff --git a/ruoyi-admin/src/main/java/org/dromara/web/controller/AuthController.java b/ruoyi-admin/src/main/java/org/dromara/web/controller/AuthController.java index 43e689be3..8b83e29b0 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/controller/AuthController.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/controller/AuthController.java @@ -91,7 +91,7 @@ public class AuthController { return R.fail(MessageUtils.message("auth.grant.type.blocked")); } // 校验租户 - loginService.checkTenant(loginBody.getTenantId()); + SysTenantVo tenant = loginService.checkTenant(loginBody.getTenantId()); // 登录 LoginVo loginVo = IAuthStrategy.login(body, client, grantType); @@ -102,6 +102,10 @@ public class AuthController { dto.setSessionKeys(List.of(userId)); WebSocketUtils.publishMessage(dto); }, 3, TimeUnit.SECONDS); + + if (StringUtils.isNotBlank(tenant.getTenantId())) { + loginVo.setDomain(tenant.getDomain()); + } return R.ok(loginVo); } @@ -129,7 +133,7 @@ public class AuthController { * @return 结果 */ @PostMapping("/social/callback") - public R socialCallback(@RequestBody SocialLoginBody loginBody) { + public R socialCallback(@RequestBody SocialLoginBody loginBody) { // 获取第三方登录信息 AuthResponse response = SocialUtils.loginAuth( loginBody.getSource(), loginBody.getSocialCode(), @@ -140,7 +144,13 @@ public class AuthController { return R.fail(response.getMsg()); } loginService.socialRegister(authUserData); - return R.ok(); + + LoginVo loginVo = new LoginVo(); + SysTenantVo tenant = tenantService.queryByTenantId(LoginHelper.getTenantId()); + if (StringUtils.isNotBlank(tenant.getTenantId())) { + loginVo.setDomain(tenant.getDomain()); + } + return R.ok(loginVo); } diff --git a/ruoyi-admin/src/main/java/org/dromara/web/domain/vo/LoginVo.java b/ruoyi-admin/src/main/java/org/dromara/web/domain/vo/LoginVo.java index 834afe5a1..149bee402 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/domain/vo/LoginVo.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/domain/vo/LoginVo.java @@ -51,4 +51,9 @@ public class LoginVo { */ private String openid; + /** + * 域名 + */ + private String domain; + } diff --git a/ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java b/ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java index af6e7f557..d34022950 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java @@ -221,17 +221,17 @@ public class SysLoginService { * * @param tenantId 租户ID */ - public void checkTenant(String tenantId) { + public SysTenantVo checkTenant(String tenantId) { if (!TenantHelper.isEnable()) { - return; - } - if (TenantConstants.DEFAULT_TENANT_ID.equals(tenantId)) { - return; + return null; } if (StringUtils.isBlank(tenantId)) { throw new TenantException("tenant.number.not.blank"); } SysTenantVo tenant = tenantService.queryByTenantId(tenantId); + if (TenantConstants.DEFAULT_TENANT_ID.equals(tenantId)) { + return tenant; + } if (ObjectUtil.isNull(tenant)) { log.info("登录租户:{} 不存在.", tenantId); throw new TenantException("tenant.not.exists"); @@ -243,6 +243,7 @@ public class SysLoginService { log.info("登录租户:{} 已超过有效期.", tenantId); throw new TenantException("tenant.expired"); } + return tenant; } }