update 优化 三方登录不同域名获取不到租户id问题

This commit is contained in:
疯狂的狮子Li 2024-06-18 18:44:04 +08:00
parent 086b206139
commit cbd59f84fd
3 changed files with 24 additions and 8 deletions

View File

@ -91,7 +91,7 @@ public class AuthController {
return R.fail(MessageUtils.message("auth.grant.type.blocked")); 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); LoginVo loginVo = IAuthStrategy.login(body, client, grantType);
@ -102,6 +102,10 @@ public class AuthController {
dto.setSessionKeys(List.of(userId)); dto.setSessionKeys(List.of(userId));
WebSocketUtils.publishMessage(dto); WebSocketUtils.publishMessage(dto);
}, 3, TimeUnit.SECONDS); }, 3, TimeUnit.SECONDS);
if (StringUtils.isNotBlank(tenant.getTenantId())) {
loginVo.setDomain(tenant.getDomain());
}
return R.ok(loginVo); return R.ok(loginVo);
} }
@ -129,7 +133,7 @@ public class AuthController {
* @return 结果 * @return 结果
*/ */
@PostMapping("/social/callback") @PostMapping("/social/callback")
public R<Void> socialCallback(@RequestBody SocialLoginBody loginBody) { public R<LoginVo> socialCallback(@RequestBody SocialLoginBody loginBody) {
// 获取第三方登录信息 // 获取第三方登录信息
AuthResponse<AuthUser> response = SocialUtils.loginAuth( AuthResponse<AuthUser> response = SocialUtils.loginAuth(
loginBody.getSource(), loginBody.getSocialCode(), loginBody.getSource(), loginBody.getSocialCode(),
@ -140,7 +144,13 @@ public class AuthController {
return R.fail(response.getMsg()); return R.fail(response.getMsg());
} }
loginService.socialRegister(authUserData); 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);
} }

View File

@ -51,4 +51,9 @@ public class LoginVo {
*/ */
private String openid; private String openid;
/**
* 域名
*/
private String domain;
} }

View File

@ -221,17 +221,17 @@ public class SysLoginService {
* *
* @param tenantId 租户ID * @param tenantId 租户ID
*/ */
public void checkTenant(String tenantId) { public SysTenantVo checkTenant(String tenantId) {
if (!TenantHelper.isEnable()) { if (!TenantHelper.isEnable()) {
return; return null;
}
if (TenantConstants.DEFAULT_TENANT_ID.equals(tenantId)) {
return;
} }
if (StringUtils.isBlank(tenantId)) { if (StringUtils.isBlank(tenantId)) {
throw new TenantException("tenant.number.not.blank"); throw new TenantException("tenant.number.not.blank");
} }
SysTenantVo tenant = tenantService.queryByTenantId(tenantId); SysTenantVo tenant = tenantService.queryByTenantId(tenantId);
if (TenantConstants.DEFAULT_TENANT_ID.equals(tenantId)) {
return tenant;
}
if (ObjectUtil.isNull(tenant)) { if (ObjectUtil.isNull(tenant)) {
log.info("登录租户:{} 不存在.", tenantId); log.info("登录租户:{} 不存在.", tenantId);
throw new TenantException("tenant.not.exists"); throw new TenantException("tenant.not.exists");
@ -243,6 +243,7 @@ public class SysLoginService {
log.info("登录租户:{} 已超过有效期.", tenantId); log.info("登录租户:{} 已超过有效期.", tenantId);
throw new TenantException("tenant.expired"); throw new TenantException("tenant.expired");
} }
return tenant;
} }
} }