update 优化 三方登录不同域名获取不到租户id问题
parent
0b8fd7da3b
commit
d28cdcd0e1
|
|
@ -91,9 +91,12 @@ public class TokenController {
|
||||||
return R.fail(MessageUtils.message("auth.grant.type.blocked"));
|
return R.fail(MessageUtils.message("auth.grant.type.blocked"));
|
||||||
}
|
}
|
||||||
// 校验租户
|
// 校验租户
|
||||||
sysLoginService.checkTenant(loginBody.getTenantId());
|
RemoteTenantVo tenant = sysLoginService.checkTenant(loginBody.getTenantId());
|
||||||
// 登录
|
// 登录
|
||||||
LoginVo loginVo = IAuthStrategy.login(body, clientVo, grantType);
|
LoginVo loginVo = IAuthStrategy.login(body, clientVo, grantType);
|
||||||
|
if (StringUtils.isNotBlank(tenant.getTenantId())) {
|
||||||
|
loginVo.setDomain(tenant.getDomain());
|
||||||
|
}
|
||||||
|
|
||||||
Long userId = LoginHelper.getUserId();
|
Long userId = LoginHelper.getUserId();
|
||||||
scheduledExecutorService.schedule(() -> {
|
scheduledExecutorService.schedule(() -> {
|
||||||
|
|
@ -126,7 +129,7 @@ public class TokenController {
|
||||||
* @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(),
|
||||||
|
|
@ -137,7 +140,13 @@ public class TokenController {
|
||||||
return R.fail(response.getMsg());
|
return R.fail(response.getMsg());
|
||||||
}
|
}
|
||||||
sysLoginService.socialRegister(authUserData);
|
sysLoginService.socialRegister(authUserData);
|
||||||
return R.ok();
|
|
||||||
|
LoginVo loginVo = new LoginVo();
|
||||||
|
RemoteTenantVo tenant = sysLoginService.checkTenant(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 openid;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 域名
|
||||||
|
*/
|
||||||
|
private String domain;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -242,17 +242,17 @@ public class SysLoginService {
|
||||||
*
|
*
|
||||||
* @param tenantId 租户ID
|
* @param tenantId 租户ID
|
||||||
*/
|
*/
|
||||||
public void checkTenant(String tenantId) {
|
public RemoteTenantVo 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");
|
||||||
}
|
}
|
||||||
RemoteTenantVo tenant = remoteTenantService.queryByTenantId(tenantId);
|
RemoteTenantVo tenant = remoteTenantService.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");
|
||||||
|
|
@ -264,5 +264,6 @@ public class SysLoginService {
|
||||||
log.info("登录租户:{} 已超过有效期.", tenantId);
|
log.info("登录租户:{} 已超过有效期.", tenantId);
|
||||||
throw new TenantException("tenant.expired");
|
throw new TenantException("tenant.expired");
|
||||||
}
|
}
|
||||||
|
return tenant;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue