diff --git a/src/main/java/com/onixbyte/deltaforceguide/controller/AuthController.java b/src/main/java/com/onixbyte/deltaforceguide/controller/AuthController.java index 481a549..af60283 100644 --- a/src/main/java/com/onixbyte/deltaforceguide/controller/AuthController.java +++ b/src/main/java/com/onixbyte/deltaforceguide/controller/AuthController.java @@ -6,9 +6,11 @@ import com.onixbyte.deltaforceguide.client.TokenClient; import com.onixbyte.deltaforceguide.service.AuthService; import com.onixbyte.deltaforceguide.service.CookieService; import com.onixbyte.deltaforceguide.shared.CookieName; -import jakarta.validation.Valid; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.http.HttpHeaders; import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -16,6 +18,7 @@ import org.springframework.web.bind.annotation.RestController; import java.time.Duration; +@Tag(name = "用户鉴权", description = "处理用户登录与退出功能") @RestController @RequestMapping("/auth") public class AuthController { @@ -30,8 +33,9 @@ public class AuthController { this.cookieService = cookieService; } + @Operation(description = "用户登录") @PostMapping("/login") - public ResponseEntity login(@Valid @RequestBody LoginRequest request) { + public ResponseEntity login(@Validated @RequestBody LoginRequest request) { var user = authService.login(request); var accessToken = tokenClient.generateToken(user); var accessTokenCookie = cookieService.buildCookie(CookieName.ACCESS_TOKEN, accessToken); diff --git a/src/main/java/com/onixbyte/deltaforceguide/domain/dto/LoginRequest.java b/src/main/java/com/onixbyte/deltaforceguide/domain/dto/LoginRequest.java index 5dda62b..272d119 100644 --- a/src/main/java/com/onixbyte/deltaforceguide/domain/dto/LoginRequest.java +++ b/src/main/java/com/onixbyte/deltaforceguide/domain/dto/LoginRequest.java @@ -1,9 +1,15 @@ package com.onixbyte.deltaforceguide.domain.dto; +import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; +@Schema(description = "登录请求") public record LoginRequest( - @NotBlank(message = "登录名称不能为空") String principle, - @NotBlank(message = "登录口令不能为空") String credential + @NotBlank(message = "登录名称不能为空") + @Schema(description = "用户名或电子邮箱") + String principle, + @NotBlank(message = "登录口令不能为空") + @Schema(description = "密码") + String credential ) { }