From 9448782f451790beb05b2e6717683dc0a59d6a24 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子Li <15040126243@163.com> Date: 星期二, 20 六月 2023 15:00:16 +0800 Subject: [PATCH] update 优化 !pr370 完成三方登录授权功能 --- ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java | 50 +++++++++++++++++++++++--------------------------- 1 files changed, 23 insertions(+), 27 deletions(-) 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 e4aec24..d944a5a 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 @@ -6,7 +6,6 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import jakarta.servlet.http.HttpServletRequest; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import me.zhyd.oauth.model.AuthResponse; @@ -33,20 +32,18 @@ import org.dromara.common.tenant.helper.TenantHelper; import org.dromara.common.web.config.properties.CaptchaProperties; import org.dromara.system.domain.SysUser; -import org.dromara.system.domain.bo.SocialUserBo; -import org.dromara.system.domain.vo.SocialUserVo; +import org.dromara.system.domain.bo.SysSocialBo; +import org.dromara.system.domain.vo.SysSocialVo; import org.dromara.system.domain.vo.SysTenantVo; import org.dromara.system.domain.vo.SysUserVo; import org.dromara.system.mapper.SysUserMapper; -import org.dromara.system.service.ISocialUserService; +import org.dromara.system.service.ISysSocialService; import org.dromara.system.service.ISysPermissionService; import org.dromara.system.service.ISysTenantService; -import org.dromara.system.service.ISysUserService; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; -import java.io.IOException; import java.time.Duration; import java.util.Date; import java.util.List; @@ -63,7 +60,7 @@ public class SysLoginService { private final SysUserMapper userMapper; - private final ISocialUserService socialUserService; + private final ISysSocialService sysSocialService; private final CaptchaProperties captchaProperties; private final ISysPermissionService permissionService; private final ISysTenantService tenantService; @@ -170,47 +167,46 @@ * * @param source 鐧诲綍鏉ユ簮 * @param authUser 鎺堟潈鍝嶅簲瀹炰綋 - * @param request Http璇锋眰瀵硅薄 * @return 缁熶竴鍝嶅簲瀹炰綋 */ - public R<String> socialLogin(String source, AuthResponse<AuthUser> authUser, HttpServletRequest request) { + public R<String> socialLogin(String source, AuthResponse<AuthUser> authUser) { // 鍒ゆ柇鎺堟潈鍝嶅簲鏄惁鎴愬姛 if (!authUser.ok()) { return R.fail("瀵逛笉璧凤紝鎺堟潈淇℃伅楠岃瘉涓嶉�氳繃锛岃閫�鍑洪噸璇曪紒"); } AuthUser authUserData = authUser.getData(); - SocialUserVo user = socialUserService.selectSocialUserByAuthId(authUserData.getSource() + authUserData.getUuid()); + SysSocialVo user = sysSocialService.selectByAuthId(authUserData.getSource() + authUserData.getUuid()); if (ObjectUtil.isNotNull(user)) { - //鎵ц鐧诲綍鍜岃褰曠櫥褰曚俊鎭搷浣� + // 鎵ц鐧诲綍鍜岃褰曠櫥褰曚俊鎭搷浣� return loginAndRecord(user.getTenantId(), user.getUserName(), authUserData); } else { // 鍒ゆ柇鏄惁宸茬櫥褰� if (LoginHelper.getUserId() == null) { return R.fail("鎺堟潈澶辫触锛岃鍏堢櫥褰曟墠鑳界粦瀹�"); } - SocialUserBo socialUserBo = new SocialUserBo(); - socialUserBo.setUserId(LoginHelper.getUserId()); - socialUserBo.setAuthId(authUserData.getSource() + authUserData.getUuid()); - socialUserBo.setSource(authUserData.getSource()); - socialUserBo.setUserName(authUserData.getUsername()); - socialUserBo.setNickName(authUserData.getNickname()); - socialUserBo.setAvatar(authUserData.getAvatar()); - socialUserBo.setOpenId(authUserData.getUuid()); - BeanUtils.copyProperties(authUserData.getToken(), socialUserBo); + SysSocialBo bo = new SysSocialBo(); + bo.setUserId(LoginHelper.getUserId()); + bo.setAuthId(authUserData.getSource() + authUserData.getUuid()); + bo.setSource(authUserData.getSource()); + bo.setUserName(authUserData.getUsername()); + bo.setNickName(authUserData.getNickname()); + bo.setAvatar(authUserData.getAvatar()); + bo.setOpenId(authUserData.getUuid()); + BeanUtils.copyProperties(authUserData.getToken(), bo); - socialUserService.insertByBo(socialUserBo); - SysUserVo lodingData = loadUserByUsername(LoginHelper.getTenantId(), LoginHelper.getUsername()); - //鎵ц鐧诲綍鍜岃褰曠櫥褰曚俊鎭搷浣� - return loginAndRecord(lodingData.getTenantId(), socialUserBo.getUserName(), authUserData); + sysSocialService.insertByBo(bo); + SysUserVo sysUser = loadUserByUsername(LoginHelper.getTenantId(), LoginHelper.getUsername()); + // 鎵ц鐧诲綍鍜岃褰曠櫥褰曚俊鎭搷浣� + return loginAndRecord(sysUser.getTenantId(), sysUser.getUserName(), authUserData); } } /** * 鎵ц鐧诲綍鍜岃褰曠櫥褰曚俊鎭搷浣� * - * @param tenantId 绉熸埛ID - * @param userName 鐢ㄦ埛鍚� - * @param authUser 鎺堟潈鐢ㄦ埛淇℃伅 + * @param tenantId 绉熸埛ID + * @param userName 鐢ㄦ埛鍚� + * @param authUser 鎺堟潈鐢ㄦ埛淇℃伅 * @return 缁熶竴鍝嶅簲瀹炰綋 */ private R<String> loginAndRecord(String tenantId, String userName, AuthUser authUser) { -- Gitblit v1.9.3