mirror of
				https://github.com/continew-org/continew-admin.git
				synced 2025-10-31 22:57:17 +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