mirror of
https://github.com/continew-org/continew-admin.git
synced 2025-09-10 08:57:14 +08:00
fix: 修复绑定部分三方账号错误(暂时修复,后续通过重写 starter 解决)
This commit is contained in:
@@ -16,13 +16,16 @@
|
||||
|
||||
package top.continew.admin.controller.system;
|
||||
|
||||
import com.xkcoding.justauth.AuthRequestFactory;
|
||||
import com.xkcoding.justauth.autoconfigure.JustAuthProperties;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.enums.ParameterIn;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import me.zhyd.oauth.AuthRequestBuilder;
|
||||
import me.zhyd.oauth.config.AuthConfig;
|
||||
import me.zhyd.oauth.model.AuthCallback;
|
||||
import me.zhyd.oauth.model.AuthResponse;
|
||||
import me.zhyd.oauth.model.AuthUser;
|
||||
@@ -41,10 +44,10 @@ import top.continew.admin.system.model.req.user.UserPasswordUpdateReq;
|
||||
import top.continew.admin.system.model.req.user.UserPhoneUpdateReq;
|
||||
import top.continew.admin.system.model.resp.AvatarResp;
|
||||
import top.continew.admin.system.model.resp.user.UserSocialBindResp;
|
||||
import top.continew.admin.system.service.NoticeService;
|
||||
import top.continew.admin.system.service.UserService;
|
||||
import top.continew.admin.system.service.UserSocialService;
|
||||
import top.continew.starter.cache.redisson.util.RedisUtils;
|
||||
import top.continew.starter.core.exception.BadRequestException;
|
||||
import top.continew.starter.core.util.ExceptionUtils;
|
||||
import top.continew.starter.core.validation.ValidationUtils;
|
||||
|
||||
@@ -68,8 +71,7 @@ public class UserProfileController {
|
||||
private static final String CAPTCHA_EXPIRED = "验证码已失效";
|
||||
private final UserService userService;
|
||||
private final UserSocialService userSocialService;
|
||||
private final NoticeService noticeService;
|
||||
private final AuthRequestFactory authRequestFactory;
|
||||
private final JustAuthProperties authProperties;
|
||||
|
||||
@Operation(summary = "修改头像", description = "用户修改个人头像")
|
||||
@PatchMapping("/avatar")
|
||||
@@ -113,7 +115,7 @@ public class UserProfileController {
|
||||
|
||||
@Operation(summary = "修改邮箱", description = "修改用户邮箱")
|
||||
@PatchMapping("/email")
|
||||
public void updateEmail(@Validated @RequestBody UserEmailUpdateReq updateReq) {
|
||||
public void updateEmail(@Valid @RequestBody UserEmailUpdateReq updateReq) {
|
||||
String rawOldPassword = ExceptionUtils.exToNull(() -> SecureUtils.decryptByRsaPrivateKey(updateReq
|
||||
.getOldPassword()));
|
||||
ValidationUtils.throwIfBlank(rawOldPassword, DECRYPT_FAILED);
|
||||
@@ -142,7 +144,7 @@ public class UserProfileController {
|
||||
@Parameter(name = "source", description = "来源", example = "gitee", in = ParameterIn.PATH)
|
||||
@PostMapping("/social/{source}")
|
||||
public void bindSocial(@PathVariable String source, @RequestBody AuthCallback callback) {
|
||||
AuthRequest authRequest = authRequestFactory.get(source);
|
||||
AuthRequest authRequest = this.getAuthRequest(source);
|
||||
AuthResponse<AuthUser> response = authRequest.login(callback);
|
||||
ValidationUtils.throwIf(!response.ok(), response.getMsg());
|
||||
AuthUser authUser = response.getData();
|
||||
@@ -155,4 +157,13 @@ public class UserProfileController {
|
||||
public void unbindSocial(@PathVariable String source) {
|
||||
userSocialService.deleteBySourceAndUserId(source, UserContextHolder.getUserId());
|
||||
}
|
||||
|
||||
private AuthRequest getAuthRequest(String source) {
|
||||
try {
|
||||
AuthConfig authConfig = authProperties.getType().get(source.toUpperCase());
|
||||
return AuthRequestBuilder.builder().source(source).authConfig(authConfig).build();
|
||||
} catch (Exception e) {
|
||||
throw new BadRequestException("暂不支持 [%s] 平台账号登录".formatted(source));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user