update 优化 三方登录不同域名获取不到租户id问题
This commit is contained in:
parent
086b206139
commit
cbd59f84fd
@ -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<Void> socialCallback(@RequestBody SocialLoginBody loginBody) {
|
||||
public R<LoginVo> socialCallback(@RequestBody SocialLoginBody loginBody) {
|
||||
// 获取第三方登录信息
|
||||
AuthResponse<AuthUser> 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);
|
||||
}
|
||||
|
||||
|
||||
|
@ -51,4 +51,9 @@ public class LoginVo {
|
||||
*/
|
||||
private String openid;
|
||||
|
||||
/**
|
||||
* 域名
|
||||
*/
|
||||
private String domain;
|
||||
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user