diff --git a/continew-admin-system/src/main/java/top/charles7c/continew/admin/auth/model/resp/SocialAuthAuthorizeResp.java b/continew-admin-system/src/main/java/top/charles7c/continew/admin/auth/model/resp/SocialAuthAuthorizeResp.java new file mode 100644 index 00000000..7bb5272d --- /dev/null +++ b/continew-admin-system/src/main/java/top/charles7c/continew/admin/auth/model/resp/SocialAuthAuthorizeResp.java @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package top.charles7c.continew.admin.auth.model.resp; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Builder; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 三方账号授权认证响应信息 + * + * @author Charles7c + * @since 2024/3/6 22:26 + */ +@Data +@Builder +@Schema(description = "三方账号授权认证响应信息") +public class SocialAuthAuthorizeResp implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 授权 URL + */ + @Schema(description = "授权 URL", example = "https://gitee.com/oauth/authorize?response_type=code&client_id=5d271b7f638941812aaf8bfc2e2f08f06d6235ef934e0e39537e2364eb8452c4&redirect_uri=http://localhost:5173/social/callback?source=gitee&state=d4ea7129e2531050210e9c918cc007d7&scope=user_info") + private String authorizeUrl; +} diff --git a/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/model/resp/FileUploadResp.java b/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/model/resp/FileUploadResp.java new file mode 100644 index 00000000..411ce195 --- /dev/null +++ b/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/model/resp/FileUploadResp.java @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package top.charles7c.continew.admin.system.model.resp; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Builder; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 文件上传响应信息 + * + * @author Charles7c + * @since 2024/3/6 22:26 + */ +@Data +@Builder +@Schema(description = "文件上传响应信息") +public class FileUploadResp implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 文件 URL + */ + @Schema(description = "文件 URL", example = "http://localhost:8000/file/65e87dc3fb377a6fb58bdece.jpg") + private String url; +} diff --git a/continew-admin-webapi/src/main/java/top/charles7c/continew/admin/webapi/auth/SocialAuthController.java b/continew-admin-webapi/src/main/java/top/charles7c/continew/admin/webapi/auth/SocialAuthController.java index d676b635..4d7d951c 100644 --- a/continew-admin-webapi/src/main/java/top/charles7c/continew/admin/webapi/auth/SocialAuthController.java +++ b/continew-admin-webapi/src/main/java/top/charles7c/continew/admin/webapi/auth/SocialAuthController.java @@ -16,32 +16,27 @@ package top.charles7c.continew.admin.webapi.auth; -import lombok.RequiredArgsConstructor; - +import cn.dev33.satoken.annotation.SaIgnore; +import cn.dev33.satoken.stp.StpUtil; +import com.xkcoding.justauth.AuthRequestFactory; 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 org.springframework.web.bind.annotation.*; - -import com.xkcoding.justauth.AuthRequestFactory; - -import cn.dev33.satoken.annotation.SaIgnore; -import cn.dev33.satoken.stp.StpUtil; - -import top.charles7c.continew.admin.auth.model.resp.LoginResp; -import top.charles7c.continew.admin.auth.service.LoginService; -import top.charles7c.continew.starter.core.exception.BadRequestException; -import top.charles7c.continew.starter.core.util.validate.ValidationUtils; -import top.charles7c.continew.starter.web.model.R; -import top.charles7c.continew.starter.log.core.annotation.Log; - +import lombok.RequiredArgsConstructor; import me.zhyd.oauth.model.AuthCallback; import me.zhyd.oauth.model.AuthResponse; import me.zhyd.oauth.model.AuthUser; import me.zhyd.oauth.request.AuthRequest; import me.zhyd.oauth.utils.AuthStateUtils; +import org.springframework.web.bind.annotation.*; +import top.charles7c.continew.admin.auth.model.resp.LoginResp; +import top.charles7c.continew.admin.auth.model.resp.SocialAuthAuthorizeResp; +import top.charles7c.continew.admin.auth.service.LoginService; +import top.charles7c.continew.starter.core.exception.BadRequestException; +import top.charles7c.continew.starter.core.util.validate.ValidationUtils; +import top.charles7c.continew.starter.log.core.annotation.Log; +import top.charles7c.continew.starter.web.model.R; /** * 三方账号认证 API @@ -63,9 +58,11 @@ public class SocialAuthController { @Operation(summary = "三方账号登录授权", description = "三方账号登录授权") @Parameter(name = "source", description = "来源", example = "gitee", in = ParameterIn.PATH) @GetMapping("/{source}") - public R authorize(@PathVariable String source) { + public R authorize(@PathVariable String source) { AuthRequest authRequest = this.getAuthRequest(source); - return R.ok("操作成功", authRequest.authorize(AuthStateUtils.createState())); + return R.ok(SocialAuthAuthorizeResp.builder() + .authorizeUrl(authRequest.authorize(AuthStateUtils.createState())) + .build()); } @Operation(summary = "三方账号登录", description = "三方账号登录") diff --git a/continew-admin-webapi/src/main/java/top/charles7c/continew/admin/webapi/common/CommonController.java b/continew-admin-webapi/src/main/java/top/charles7c/continew/admin/webapi/common/CommonController.java index 580d8f9d..efe3b95f 100644 --- a/continew-admin-webapi/src/main/java/top/charles7c/continew/admin/webapi/common/CommonController.java +++ b/continew-admin-webapi/src/main/java/top/charles7c/continew/admin/webapi/common/CommonController.java @@ -39,6 +39,7 @@ import top.charles7c.continew.admin.system.model.query.DeptQuery; import top.charles7c.continew.admin.system.model.query.MenuQuery; import top.charles7c.continew.admin.system.model.query.OptionQuery; import top.charles7c.continew.admin.system.model.query.RoleQuery; +import top.charles7c.continew.admin.system.model.resp.FileUploadResp; import top.charles7c.continew.admin.system.service.*; import top.charles7c.continew.starter.core.autoconfigure.project.ProjectProperties; import top.charles7c.continew.starter.core.util.validate.ValidationUtils; @@ -77,11 +78,11 @@ public class CommonController { @Operation(summary = "上传文件", description = "上传文件") @PostMapping("/file") - public R upload(@NotNull(message = "文件不能为空") MultipartFile file) { + public R upload(@NotNull(message = "文件不能为空") MultipartFile file) { ValidationUtils.throwIf(projectProperties.isProduction(), "演示环境不支持上传文件"); ValidationUtils.throwIf(file::isEmpty, "文件不能为空"); FileInfo fileInfo = fileService.upload(file); - return R.ok("上传成功", fileInfo.getUrl()); + return R.ok(FileUploadResp.builder().url(fileInfo.getUrl()).build()); } @Operation(summary = "查询部门树", description = "查询树结构的部门列表")