|
@@ -8,13 +8,14 @@ import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils;
|
|
|
import cn.iocoder.yudao.framework.common.util.validation.ValidationUtils;
|
|
|
import cn.iocoder.yudao.module.system.api.logger.dto.LoginLogCreateReqDTO;
|
|
|
import cn.iocoder.yudao.module.system.api.sms.SmsCodeApi;
|
|
|
+import cn.iocoder.yudao.module.system.api.social.dto.SocialUserBindReqDTO;
|
|
|
import cn.iocoder.yudao.module.system.controller.admin.auth.vo.*;
|
|
|
import cn.iocoder.yudao.module.system.convert.auth.AuthConvert;
|
|
|
import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO;
|
|
|
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
|
|
|
-import cn.iocoder.yudao.module.system.enums.oauth2.OAuth2ClientConstants;
|
|
|
import cn.iocoder.yudao.module.system.enums.logger.LoginLogTypeEnum;
|
|
|
import cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum;
|
|
|
+import cn.iocoder.yudao.module.system.enums.oauth2.OAuth2ClientConstants;
|
|
|
import cn.iocoder.yudao.module.system.enums.sms.SmsSceneEnum;
|
|
|
import cn.iocoder.yudao.module.system.service.common.CaptchaService;
|
|
|
import cn.iocoder.yudao.module.system.service.logger.LoginLogService;
|
|
@@ -91,6 +92,12 @@ public class AdminAuthServiceImpl implements AdminAuthService {
|
|
|
// 使用账号密码,进行登录
|
|
|
AdminUserDO user = authenticate(reqVO.getUsername(), reqVO.getPassword());
|
|
|
|
|
|
+ // 如果 socialType 非空,说明需要绑定社交用户
|
|
|
+ if (reqVO.getSocialType() != null) {
|
|
|
+ socialUserService.bindSocialUser(new SocialUserBindReqDTO(user.getId(), getUserType().getValue(),
|
|
|
+ reqVO.getSocialType(), reqVO.getSocialCode(), reqVO.getSocialState()));
|
|
|
+ }
|
|
|
+
|
|
|
// 创建 Token 令牌,记录登录日志
|
|
|
return createTokenAfterLoginSuccess(user.getId(), reqVO.getUsername(), LoginLogTypeEnum.LOGIN_USERNAME);
|
|
|
}
|
|
@@ -166,7 +173,7 @@ public class AdminAuthServiceImpl implements AdminAuthService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public AuthLoginRespVO socialQuickLogin(AuthSocialQuickLoginReqVO reqVO) {
|
|
|
+ public AuthLoginRespVO socialLogin(AuthSocialLoginReqVO reqVO) {
|
|
|
// 使用 code 授权码,进行登录。然后,获得到绑定的用户编号
|
|
|
Long userId = socialUserService.getBindUserId(UserTypeEnum.ADMIN.getValue(), reqVO.getType(),
|
|
|
reqVO.getCode(), reqVO.getState());
|
|
@@ -184,18 +191,6 @@ public class AdminAuthServiceImpl implements AdminAuthService {
|
|
|
return createTokenAfterLoginSuccess(user.getId(), user.getUsername(), LoginLogTypeEnum.LOGIN_SOCIAL);
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- public AuthLoginRespVO socialBindLogin(AuthSocialBindLoginReqVO reqVO) {
|
|
|
- // 使用账号密码,进行登录。
|
|
|
- AdminUserDO user = authenticate(reqVO.getUsername(), reqVO.getPassword());
|
|
|
-
|
|
|
- // 绑定社交用户
|
|
|
- socialUserService.bindSocialUser(AuthConvert.INSTANCE.convert(user.getId(), getUserType().getValue(), reqVO));
|
|
|
-
|
|
|
- // 创建 Token 令牌,记录登录日志
|
|
|
- return createTokenAfterLoginSuccess(user.getId(), reqVO.getUsername(), LoginLogTypeEnum.LOGIN_SOCIAL);
|
|
|
- }
|
|
|
-
|
|
|
@Override
|
|
|
public AuthLoginRespVO refreshToken(String refreshToken) {
|
|
|
OAuth2AccessTokenDO accessTokenDO = oauth2TokenService.refreshAccessToken(refreshToken, OAuth2ClientConstants.CLIENT_ID_DEFAULT);
|