package com.zioinfo.esn.auth; import com.zioinfo.esn.common.ApiResponse; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; import java.util.Map; @RestController @RequestMapping("/api/auth") @RequiredArgsConstructor public class AuthController { private final AuthService authService; @PostMapping("/login") public ApiResponse> login(@RequestBody LoginRequest req) { String token = authService.login(req.username(), req.password()); return ApiResponse.ok(Map.of("token", token, "type", "Bearer")); } @GetMapping("/me") public ApiResponse> me(@RequestHeader("Authorization") String header) { String token = header.replace("Bearer ", ""); return ApiResponse.ok(authService.me(token)); } @PostMapping("/logout") public ApiResponse logout() { // JWT stateless — 클라이언트에서 토큰 삭제 return ApiResponse.ok("로그아웃 성공", null); } record LoginRequest(String username, String password) {} }