mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-11-04 04:08:43 +08:00 
			
		
		
		
	进一步重构社交登陆的实现
This commit is contained in:
		@@ -36,7 +36,7 @@ import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUti
 | 
			
		||||
 | 
			
		||||
@Api(tags = "管理后台 - 认证")
 | 
			
		||||
@RestController
 | 
			
		||||
@RequestMapping("/system") // 暂时不跟 /auth 结尾
 | 
			
		||||
@RequestMapping("/system/auth") // 暂时不跟 /auth 结尾
 | 
			
		||||
@Validated
 | 
			
		||||
@Slf4j
 | 
			
		||||
public class AuthController {
 | 
			
		||||
@@ -80,7 +80,7 @@ public class AuthController {
 | 
			
		||||
        return success(AuthConvert.INSTANCE.convert(user, roleList, menuList));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @GetMapping("list-menus")
 | 
			
		||||
    @GetMapping("/list-menus")
 | 
			
		||||
    @ApiOperation("获得登录用户的菜单列表")
 | 
			
		||||
    public CommonResult<List<AuthMenuRespVO>> getMenus() {
 | 
			
		||||
        // 获得用户拥有的菜单列表
 | 
			
		||||
@@ -105,36 +105,22 @@ public class AuthController {
 | 
			
		||||
        return CommonResult.success(socialUserService.getAuthorizeUrl(type, redirectUri));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @PostMapping("/social-login")
 | 
			
		||||
    @ApiOperation("社交登录,使用 code 授权码")
 | 
			
		||||
    @PostMapping("/social-quick-login")
 | 
			
		||||
    @ApiOperation("社交快捷登录,使用 code 授权码")
 | 
			
		||||
    @OperateLog(enable = false) // 避免 Post 请求被记录操作日志
 | 
			
		||||
    public CommonResult<AuthLoginRespVO> socialLogin(@RequestBody @Valid AuthSocialLoginReqVO reqVO) {
 | 
			
		||||
    public CommonResult<AuthLoginRespVO> socialQuickLogin(@RequestBody @Valid AuthSocialQuickLoginReqVO reqVO) {
 | 
			
		||||
        String token = authService.socialLogin(reqVO, getClientIP(), getUserAgent());
 | 
			
		||||
        // 返回结果
 | 
			
		||||
        return success(AuthLoginRespVO.builder().token(token).build());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @PostMapping("/social-login2")
 | 
			
		||||
    @ApiOperation("社交登录,使用 code 授权码 + 账号密码")
 | 
			
		||||
    @PostMapping("/social-bind-login")
 | 
			
		||||
    @ApiOperation("社交绑定登录,使用 code 授权码 + 账号密码")
 | 
			
		||||
    @OperateLog(enable = false) // 避免 Post 请求被记录操作日志
 | 
			
		||||
    public CommonResult<AuthLoginRespVO> socialLogin2(@RequestBody @Valid AuthSocialLogin2ReqVO reqVO) {
 | 
			
		||||
        String token = authService.socialLogin2(reqVO, getClientIP(), getUserAgent());
 | 
			
		||||
    public CommonResult<AuthLoginRespVO> socialBindLogin(@RequestBody @Valid AuthSocialBindLoginReqVO reqVO) {
 | 
			
		||||
        String token = authService.socialBindLogin(reqVO, getClientIP(), getUserAgent());
 | 
			
		||||
        // 返回结果
 | 
			
		||||
        return success(AuthLoginRespVO.builder().token(token).build());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @PostMapping("/social-bind")
 | 
			
		||||
    @ApiOperation("社交绑定,使用 code 授权码")
 | 
			
		||||
    public CommonResult<Boolean> socialBind(@RequestBody @Valid AuthSocialBindReqVO reqVO) {
 | 
			
		||||
        authService.socialBind(getLoginUserId(), reqVO);
 | 
			
		||||
        return CommonResult.success(true);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @DeleteMapping("/social-unbind")
 | 
			
		||||
    @ApiOperation("取消社交绑定")
 | 
			
		||||
    public CommonResult<Boolean> socialUnbind(@RequestBody AuthSocialUnbindReqVO reqVO) {
 | 
			
		||||
        socialUserService.unbindSocialUser(getLoginUserId(), UserTypeEnum.ADMIN.getValue(), reqVO.getType(), reqVO.getUnionId());
 | 
			
		||||
        return CommonResult.success(true);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -14,12 +14,12 @@ import javax.validation.constraints.NotEmpty;
 | 
			
		||||
import javax.validation.constraints.NotNull;
 | 
			
		||||
import javax.validation.constraints.Pattern;
 | 
			
		||||
 | 
			
		||||
@ApiModel("管理后台 - 社交登录 Request VO,使用 code 授权码 + 账号密码")
 | 
			
		||||
@ApiModel("管理后台 - 社交绑定登录 Request VO,使用 code 授权码 + 账号密码")
 | 
			
		||||
@Data
 | 
			
		||||
@NoArgsConstructor
 | 
			
		||||
@AllArgsConstructor
 | 
			
		||||
@Builder
 | 
			
		||||
public class AuthSocialLogin2ReqVO {
 | 
			
		||||
public class AuthSocialBindLoginReqVO {
 | 
			
		||||
 | 
			
		||||
    @ApiModelProperty(value = "社交平台的类型", required = true, example = "10", notes = "参见 UserSocialTypeEnum 枚举值")
 | 
			
		||||
    @InEnum(SocialTypeEnum.class)
 | 
			
		||||
@@ -12,12 +12,12 @@ import lombok.NoArgsConstructor;
 | 
			
		||||
import javax.validation.constraints.NotEmpty;
 | 
			
		||||
import javax.validation.constraints.NotNull;
 | 
			
		||||
 | 
			
		||||
@ApiModel("管理后台 - 社交登录 Request VO,使用 code 授权码")
 | 
			
		||||
@ApiModel("管理后台 - 社交快捷登录 Request VO,使用 code 授权码")
 | 
			
		||||
@Data
 | 
			
		||||
@NoArgsConstructor
 | 
			
		||||
@AllArgsConstructor
 | 
			
		||||
@Builder
 | 
			
		||||
public class AuthSocialLoginReqVO {
 | 
			
		||||
public class AuthSocialQuickLoginReqVO {
 | 
			
		||||
 | 
			
		||||
    @ApiModelProperty(value = "社交平台的类型", required = true, example = "10", notes = "参见 UserSocialTypeEnum 枚举值")
 | 
			
		||||
    @InEnum(SocialTypeEnum.class)
 | 
			
		||||
@@ -0,0 +1,42 @@
 | 
			
		||||
package cn.iocoder.yudao.module.system.controller.admin.socail;
 | 
			
		||||
 | 
			
		||||
import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 | 
			
		||||
import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.AuthSocialBindReqVO;
 | 
			
		||||
import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.AuthSocialUnbindReqVO;
 | 
			
		||||
import cn.iocoder.yudao.module.system.convert.social.SocialUserConvert;
 | 
			
		||||
import cn.iocoder.yudao.module.system.service.social.SocialUserService;
 | 
			
		||||
import io.swagger.annotations.Api;
 | 
			
		||||
import io.swagger.annotations.ApiOperation;
 | 
			
		||||
import org.springframework.validation.annotation.Validated;
 | 
			
		||||
import org.springframework.web.bind.annotation.*;
 | 
			
		||||
 | 
			
		||||
import javax.annotation.Resource;
 | 
			
		||||
import javax.validation.Valid;
 | 
			
		||||
 | 
			
		||||
import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
 | 
			
		||||
 | 
			
		||||
@Api(tags = "管理后台 - 社交用户")
 | 
			
		||||
@RestController
 | 
			
		||||
@RequestMapping("/system/social-user")
 | 
			
		||||
@Validated
 | 
			
		||||
public class SocialUserController {
 | 
			
		||||
 | 
			
		||||
    @Resource
 | 
			
		||||
    private SocialUserService socialUserService;
 | 
			
		||||
 | 
			
		||||
    @PostMapping("/bind")
 | 
			
		||||
    @ApiOperation("社交绑定,使用 code 授权码")
 | 
			
		||||
    public CommonResult<Boolean> socialBind(@RequestBody @Valid AuthSocialBindReqVO reqVO) {
 | 
			
		||||
        socialUserService.bindSocialUser(SocialUserConvert.INSTANCE.convert(getLoginUserId(), UserTypeEnum.ADMIN.getValue(), reqVO));
 | 
			
		||||
        return CommonResult.success(true);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @DeleteMapping("/unbind")
 | 
			
		||||
    @ApiOperation("取消社交绑定")
 | 
			
		||||
    public CommonResult<Boolean> socialUnbind(@RequestBody AuthSocialUnbindReqVO reqVO) {
 | 
			
		||||
        socialUserService.unbindSocialUser(getLoginUserId(), UserTypeEnum.ADMIN.getValue(), reqVO.getType(), reqVO.getUnionId());
 | 
			
		||||
        return CommonResult.success(true);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -96,8 +96,8 @@ public class UserProfileRespVO extends UserBaseVO {
 | 
			
		||||
        @ApiModelProperty(value = "社交平台的类型", required = true, example = "10", notes = "参见 SocialTypeEnum 枚举类")
 | 
			
		||||
        private Integer type;
 | 
			
		||||
 | 
			
		||||
        @ApiModelProperty(value = "社交的全局编号", required = true, example = "IPRmJ0wvBptiPIlGEZiPewGwiEiE")
 | 
			
		||||
        private String unionId;
 | 
			
		||||
        @ApiModelProperty(value = "社交用户的 openid", required = true, example = "IPRmJ0wvBptiPIlGEZiPewGwiEiE")
 | 
			
		||||
        private String openid;
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -72,9 +72,8 @@ public interface AuthConvert {
 | 
			
		||||
        return CollectionUtils.filterList(treeNodeMap.values(), node -> MenuIdEnum.ROOT.getId().equals(node.getParentId()));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    SocialUserBindReqDTO convert(Long userId, Integer userType, AuthSocialBindReqVO reqVO);
 | 
			
		||||
    SocialUserBindReqDTO convert(Long userId, Integer userType, AuthSocialLogin2ReqVO reqVO);
 | 
			
		||||
    SocialUserBindReqDTO convert(Long userId, Integer userType, AuthSocialLoginReqVO reqVO);
 | 
			
		||||
    SocialUserUnbindReqDTO convert(Long userId, Integer userType, AuthSocialUnbindReqVO reqVO);
 | 
			
		||||
    SocialUserBindReqDTO convert(Long userId, Integer userType, AuthSocialBindLoginReqVO reqVO);
 | 
			
		||||
 | 
			
		||||
    SocialUserBindReqDTO convert(Long userId, Integer userType, AuthSocialQuickLoginReqVO reqVO);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,19 @@
 | 
			
		||||
package cn.iocoder.yudao.module.system.convert.social;
 | 
			
		||||
 | 
			
		||||
import cn.iocoder.yudao.module.system.api.social.dto.SocialUserBindReqDTO;
 | 
			
		||||
import cn.iocoder.yudao.module.system.api.social.dto.SocialUserUnbindReqDTO;
 | 
			
		||||
import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.AuthSocialBindReqVO;
 | 
			
		||||
import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.AuthSocialUnbindReqVO;
 | 
			
		||||
import org.mapstruct.Mapper;
 | 
			
		||||
import org.mapstruct.factory.Mappers;
 | 
			
		||||
 | 
			
		||||
@Mapper
 | 
			
		||||
public interface SocialUserConvert {
 | 
			
		||||
 | 
			
		||||
    SocialUserConvert INSTANCE = Mappers.getMapper(SocialUserConvert.class);
 | 
			
		||||
 | 
			
		||||
    SocialUserBindReqDTO convert(Long userId, Integer userType, AuthSocialBindReqVO reqVO);
 | 
			
		||||
 | 
			
		||||
    SocialUserUnbindReqDTO convert(Long userId, Integer userType, AuthSocialUnbindReqVO reqVO);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -2,7 +2,6 @@ package cn.iocoder.yudao.module.system.dal.dataobject.social;
 | 
			
		||||
 | 
			
		||||
import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
 | 
			
		||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 | 
			
		||||
import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum;
 | 
			
		||||
import com.baomidou.mybatisplus.annotation.TableName;
 | 
			
		||||
import lombok.*;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -18,14 +18,18 @@ public class SecurityConfiguration {
 | 
			
		||||
 | 
			
		||||
            @Override
 | 
			
		||||
            public void customize(ExpressionUrlAuthorizationConfigurer<HttpSecurity>.ExpressionInterceptUrlRegistry registry) {
 | 
			
		||||
                // 登录的接口,可匿名访问
 | 
			
		||||
                registry.antMatchers(buildAdminApi("/system/login")).anonymous();
 | 
			
		||||
                // 登录的接口
 | 
			
		||||
                registry.antMatchers(buildAdminApi("/system/auth/login")).permitAll();
 | 
			
		||||
                // 社交登陆的接口
 | 
			
		||||
                registry.antMatchers(buildAdminApi("/system/auth/social-auth-redirect")).permitAll();
 | 
			
		||||
                registry.antMatchers(buildAdminApi("/system/auth/social-quick-login")).permitAll();
 | 
			
		||||
                registry.antMatchers(buildAdminApi("/system/auth/social-bind-login")).permitAll();
 | 
			
		||||
                // 验证码的接口
 | 
			
		||||
                registry.antMatchers(buildAdminApi("/system/captcha/**")).anonymous();
 | 
			
		||||
                registry.antMatchers(buildAdminApi("/system/captcha/**")).permitAll();
 | 
			
		||||
                // 获得租户编号的接口
 | 
			
		||||
                registry.antMatchers(buildAdminApi("/system/tenant/get-id-by-name")).anonymous();
 | 
			
		||||
                registry.antMatchers(buildAdminApi("/system/tenant/get-id-by-name")).permitAll();
 | 
			
		||||
                // 短信回调 API
 | 
			
		||||
                registry.antMatchers(buildAdminApi("/system/sms/callback/**")).anonymous();
 | 
			
		||||
                registry.antMatchers(buildAdminApi("/system/sms/callback/**")).permitAll();
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
        };
 | 
			
		||||
 
 | 
			
		||||
@@ -25,31 +25,23 @@ public interface AdminAuthService extends SecurityAuthFrameworkService {
 | 
			
		||||
    String login(@Valid AuthLoginReqVO reqVO, String userIp, String userAgent);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 社交登录,使用 code 授权码
 | 
			
		||||
     * 社交快捷登录,使用 code 授权码
 | 
			
		||||
     *
 | 
			
		||||
     * @param reqVO 登录信息
 | 
			
		||||
     * @param userIp 用户 IP
 | 
			
		||||
     * @param userAgent 用户 UA
 | 
			
		||||
     * @return 身份令牌,使用 JWT 方式
 | 
			
		||||
     */
 | 
			
		||||
    String socialLogin(@Valid AuthSocialLoginReqVO reqVO, String userIp, String userAgent);
 | 
			
		||||
    String socialLogin(@Valid AuthSocialQuickLoginReqVO reqVO, String userIp, String userAgent);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 社交登录,使用 code 授权码 + 账号密码
 | 
			
		||||
     * 社交绑定登录,使用 code 授权码 + 账号密码
 | 
			
		||||
     *
 | 
			
		||||
     * @param reqVO 登录信息
 | 
			
		||||
     * @param userIp 用户 IP
 | 
			
		||||
     * @param userAgent 用户 UA
 | 
			
		||||
     * @return 身份令牌,使用 JWT 方式
 | 
			
		||||
     */
 | 
			
		||||
    String socialLogin2(@Valid AuthSocialLogin2ReqVO reqVO, String userIp, String userAgent);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 社交绑定,使用 code 授权码
 | 
			
		||||
     *
 | 
			
		||||
     * @param userId 用户编号
 | 
			
		||||
     * @param reqVO 绑定信息
 | 
			
		||||
     */
 | 
			
		||||
    void socialBind(Long userId, @Valid AuthSocialBindReqVO reqVO);
 | 
			
		||||
    String socialBindLogin(@Valid AuthSocialBindLoginReqVO reqVO, String userIp, String userAgent);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -9,9 +9,9 @@ import cn.iocoder.yudao.framework.security.core.LoginUser;
 | 
			
		||||
import cn.iocoder.yudao.framework.security.core.authentication.MultiUsernamePasswordAuthenticationToken;
 | 
			
		||||
import cn.iocoder.yudao.module.system.api.logger.dto.LoginLogCreateReqDTO;
 | 
			
		||||
import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.AuthLoginReqVO;
 | 
			
		||||
import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.AuthSocialBindLoginReqVO;
 | 
			
		||||
import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.AuthSocialBindReqVO;
 | 
			
		||||
import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.AuthSocialLogin2ReqVO;
 | 
			
		||||
import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.AuthSocialLoginReqVO;
 | 
			
		||||
import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.AuthSocialQuickLoginReqVO;
 | 
			
		||||
import cn.iocoder.yudao.module.system.convert.auth.AuthConvert;
 | 
			
		||||
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
 | 
			
		||||
import cn.iocoder.yudao.module.system.enums.logger.LoginLogTypeEnum;
 | 
			
		||||
@@ -22,7 +22,6 @@ import cn.iocoder.yudao.module.system.service.permission.PermissionService;
 | 
			
		||||
import cn.iocoder.yudao.module.system.service.social.SocialUserService;
 | 
			
		||||
import cn.iocoder.yudao.module.system.service.user.AdminUserService;
 | 
			
		||||
import lombok.extern.slf4j.Slf4j;
 | 
			
		||||
import me.zhyd.oauth.model.AuthUser;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
import org.springframework.context.annotation.Lazy;
 | 
			
		||||
import org.springframework.security.authentication.AuthenticationManager;
 | 
			
		||||
@@ -82,7 +81,7 @@ public class AdminAuthServiceImpl implements AdminAuthService {
 | 
			
		||||
            throw new UsernameNotFoundException(username);
 | 
			
		||||
        }
 | 
			
		||||
        // 创建 LoginUser 对象
 | 
			
		||||
        return this.buildLoginUser(user);
 | 
			
		||||
        return buildLoginUser(user);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
@@ -92,19 +91,19 @@ public class AdminAuthServiceImpl implements AdminAuthService {
 | 
			
		||||
        if (user == null) {
 | 
			
		||||
            throw new UsernameNotFoundException(String.valueOf(userId));
 | 
			
		||||
        }
 | 
			
		||||
        this.createLoginLog(user.getUsername(), LoginLogTypeEnum.LOGIN_MOCK, LoginResultEnum.SUCCESS);
 | 
			
		||||
        createLoginLog(user.getUsername(), LoginLogTypeEnum.LOGIN_MOCK, LoginResultEnum.SUCCESS);
 | 
			
		||||
 | 
			
		||||
        // 创建 LoginUser 对象
 | 
			
		||||
        return this.buildLoginUser(user);
 | 
			
		||||
        return buildLoginUser(user);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public String login(AuthLoginReqVO reqVO, String userIp, String userAgent) {
 | 
			
		||||
        // 判断验证码是否正确
 | 
			
		||||
        this.verifyCaptcha(reqVO);
 | 
			
		||||
        verifyCaptcha(reqVO);
 | 
			
		||||
 | 
			
		||||
        // 使用账号密码,进行登录
 | 
			
		||||
        LoginUser loginUser = this.login0(reqVO.getUsername(), reqVO.getPassword());
 | 
			
		||||
        LoginUser loginUser = login0(reqVO.getUsername(), reqVO.getPassword());
 | 
			
		||||
 | 
			
		||||
        // 缓存登陆用户到 Redis 中,返回 sessionId 编号
 | 
			
		||||
        return createUserSessionAfterLoginSuccess(loginUser, LoginLogTypeEnum.LOGIN_USERNAME, userIp, userAgent);
 | 
			
		||||
@@ -192,7 +191,7 @@ public class AdminAuthServiceImpl implements AdminAuthService {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public String socialLogin(AuthSocialLoginReqVO reqVO, String userIp, String userAgent) {
 | 
			
		||||
    public String socialLogin(AuthSocialQuickLoginReqVO reqVO, String userIp, String userAgent) {
 | 
			
		||||
        // 使用 code 授权码,进行登录。然后,获得到绑定的用户编号
 | 
			
		||||
        Long userId = socialUserService.getBindUserId(UserTypeEnum.ADMIN.getValue(), reqVO.getType(),
 | 
			
		||||
                reqVO.getCode(), reqVO.getState());
 | 
			
		||||
@@ -207,24 +206,18 @@ public class AdminAuthServiceImpl implements AdminAuthService {
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // 创建 LoginUser 对象
 | 
			
		||||
        LoginUser loginUser = this.buildLoginUser(user);
 | 
			
		||||
 | 
			
		||||
        // 绑定社交用户(更新)
 | 
			
		||||
        socialUserService.bindSocialUser(AuthConvert.INSTANCE.convert(loginUser.getId(), getUserType().getValue(), reqVO));
 | 
			
		||||
        LoginUser loginUser = buildLoginUser(user);
 | 
			
		||||
 | 
			
		||||
        // 缓存登录用户到 Redis 中,返回 sessionId 编号
 | 
			
		||||
        return createUserSessionAfterLoginSuccess(loginUser, LoginLogTypeEnum.LOGIN_SOCIAL, userIp, userAgent);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public String socialLogin2(AuthSocialLogin2ReqVO reqVO, String userIp, String userAgent) {
 | 
			
		||||
        // 使用 code 授权码,进行登录
 | 
			
		||||
        socialUserService.authSocialUser(reqVO.getType(), reqVO.getCode(), reqVO.getState());
 | 
			
		||||
 | 
			
		||||
    public String socialBindLogin(AuthSocialBindLoginReqVO reqVO, String userIp, String userAgent) {
 | 
			
		||||
        // 使用账号密码,进行登录。
 | 
			
		||||
        LoginUser loginUser = this.login0(reqVO.getUsername(), reqVO.getPassword());
 | 
			
		||||
        LoginUser loginUser = login0(reqVO.getUsername(), reqVO.getPassword());
 | 
			
		||||
 | 
			
		||||
        // 绑定社交用户(新增)
 | 
			
		||||
        // 绑定社交用户
 | 
			
		||||
        socialUserService.bindSocialUser(AuthConvert.INSTANCE.convert(loginUser.getId(), getUserType().getValue(), reqVO));
 | 
			
		||||
 | 
			
		||||
        // 缓存登录用户到 Redis 中,返回 sessionId 编号
 | 
			
		||||
@@ -238,12 +231,6 @@ public class AdminAuthServiceImpl implements AdminAuthService {
 | 
			
		||||
        return userSessionService.createUserSession(loginUser, userIp, userAgent);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void socialBind(Long userId, AuthSocialBindReqVO reqVO) {
 | 
			
		||||
        // 绑定社交用户(新增)
 | 
			
		||||
        socialUserService.bindSocialUser(AuthConvert.INSTANCE.convert(userId, getUserType().getValue(), reqVO));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void logout(String token) {
 | 
			
		||||
        // 查询用户信息
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user