From 6a0bc5e38defbef858b4fa38b7fed81f77685e0c Mon Sep 17 00:00:00 2001 From: root Date: Mon, 22 Dec 2025 12:44:10 +0900 Subject: [PATCH] =?UTF-8?q?=ED=86=A0=ED=81=B0=EB=B0=9B=EA=B8=B0=20?= =?UTF-8?q?=EC=84=B1=EA=B3=B5,=20=EC=82=AC=EC=9A=A9=EC=9E=90=EC=A0=95?= =?UTF-8?q?=EB=B3=B4=EC=A1=B0=ED=9A=8C=20=EC=8B=9C=EC=9E=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ocr/prd/contorllers/LoginController.java | 50 ++++++++++++++----- ...{LoginRequestDto.java => LoginReqDTO.java} | 2 +- ...LoginResponseDto.java => LoginResDTO.java} | 0 .../site/ocr/prd/dto/UserInfoInqyReqDTO.java | 17 +++++++ .../site/ocr/prd/dto/UserInfoInqyResDTO.java | 24 +++++++++ 5 files changed, 79 insertions(+), 14 deletions(-) rename prd/src/main/java/site/ocr/prd/dto/{LoginRequestDto.java => LoginReqDTO.java} (94%) rename prd/src/main/java/site/ocr/prd/dto/{LoginResponseDto.java => LoginResDTO.java} (100%) create mode 100644 prd/src/main/java/site/ocr/prd/dto/UserInfoInqyReqDTO.java create mode 100644 prd/src/main/java/site/ocr/prd/dto/UserInfoInqyResDTO.java diff --git a/prd/src/main/java/site/ocr/prd/contorllers/LoginController.java b/prd/src/main/java/site/ocr/prd/contorllers/LoginController.java index 63f60d7..8261e84 100644 --- a/prd/src/main/java/site/ocr/prd/contorllers/LoginController.java +++ b/prd/src/main/java/site/ocr/prd/contorllers/LoginController.java @@ -6,8 +6,9 @@ import org.springframework.web.bind.annotation.RestController; import org.springframework.web.reactive.function.client.WebClient; import jakarta.servlet.http.HttpServletRequest; -import site.ocr.prd.dto.LoginRequestDto; -import site.ocr.prd.dto.LoginResponseDto; +import site.ocr.prd.dto.LoginReqDTO; +import site.ocr.prd.dto.LoginResDTO; +import site.ocr.prd.dto.UserInfoInqyReqDTO; import site.ocr.prd.services.LoginService; @@ -18,22 +19,45 @@ public class LoginController { //service 선언 private LoginService loginService = new LoginService(WebClient.builder()); - @GetMapping("/oauth/oauth-kakao-authorize") //kakao에서 get으로 요청 보냄 + /** + * 프론트에서 카카오로 로그인 요청 후 카카오에서 리다이렉트 해준 인가코드로 토큰 발급 및 사용자정보 조회 + * @param redirectRespn 카카오에서 리다이렉트해준 인가코드 + */ + @GetMapping("/oauth/oauth-kakao-authorize") //kakao에서 get으로 리다이렉트 해줌 public void kakaoLoginRequestDto(HttpServletRequest redirectRespn) { - String accessToken = redirectRespn.getParameter("code"); - System.out.println(accessToken); - LoginRequestDto requestDTO = new LoginRequestDto(); - requestDTO.setGrant_type("authorization_code"); - requestDTO.setClient_id("a1d6afef2d4508a10a498b7069f67496"); - requestDTO.setRedirect_uri("http://localhost:9001/oauth/oauth-kakao-authorize"); - requestDTO.setCode(accessToken); + String code = redirectRespn.getParameter("code"); + System.out.println("인가코드 :: " + code); + + /** + * 카카오에 토큰값 요청 + * requestDTO + * @param grant_type + * @param client_id 카카오콘솔의 app key + * @param code 인가코드 + */ + LoginReqDTO loginRequest = new LoginReqDTO(); + loginRequest.setGrant_type("authorization_code"); + loginRequest.setClient_id("a1d6afef2d4508a10a498b7069f67496"); + loginRequest.setRedirect_uri("http://localhost:9001/oauth/oauth-kakao-authorize"); + loginRequest.setCode(code); + + /** + * 카카오로부터 받은 토큰값 + * @param access_token 사용자정보 조회용 토큰 + * @param expires_in 토큰 유효시간(초) + * @param refresh_token 사용자 리프레시 토큰 + */ + LoginResDTO loginResult = loginService.getToken(loginRequest); + System.out.println("결과 :: " + loginResult.toString()); + + UserInfoInqyReqDTO userInfoInqyRequest = new UserInfoInqyReqDTO(); + userInfoInqyRequest.setAccess_token(loginResult.getAccess_token()); + - LoginResponseDto result = loginService.getToken(requestDTO); - System.out.println("결과 :: " + result.toString()); } @GetMapping("login/oauth-kakao-token") - public String kakaoLoginResponseDto(@RequestBody LoginResponseDto response) { + public String kakaoLoginResponseDto(@RequestBody LoginResDTO response) { //TODO: process POST request System.out.println("response :: "); System.out.println(response.getAccess_token()); diff --git a/prd/src/main/java/site/ocr/prd/dto/LoginRequestDto.java b/prd/src/main/java/site/ocr/prd/dto/LoginReqDTO.java similarity index 94% rename from prd/src/main/java/site/ocr/prd/dto/LoginRequestDto.java rename to prd/src/main/java/site/ocr/prd/dto/LoginReqDTO.java index 371fadc..257943a 100644 --- a/prd/src/main/java/site/ocr/prd/dto/LoginRequestDto.java +++ b/prd/src/main/java/site/ocr/prd/dto/LoginReqDTO.java @@ -9,7 +9,7 @@ import lombok.ToString; @ToString @Getter @Setter -public class LoginRequestDto { +public class LoginReqDTO { @JsonProperty("grant_type") String grant_type; //authorization_code diff --git a/prd/src/main/java/site/ocr/prd/dto/LoginResponseDto.java b/prd/src/main/java/site/ocr/prd/dto/LoginResDTO.java similarity index 100% rename from prd/src/main/java/site/ocr/prd/dto/LoginResponseDto.java rename to prd/src/main/java/site/ocr/prd/dto/LoginResDTO.java diff --git a/prd/src/main/java/site/ocr/prd/dto/UserInfoInqyReqDTO.java b/prd/src/main/java/site/ocr/prd/dto/UserInfoInqyReqDTO.java new file mode 100644 index 0000000..a7f7711 --- /dev/null +++ b/prd/src/main/java/site/ocr/prd/dto/UserInfoInqyReqDTO.java @@ -0,0 +1,17 @@ +package site.ocr.prd.dto; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + +@ToString +@Getter +@Setter +public class UserInfoInqyReqDTO { + + @JsonProperty("access_token") + String access_token; + +} diff --git a/prd/src/main/java/site/ocr/prd/dto/UserInfoInqyResDTO.java b/prd/src/main/java/site/ocr/prd/dto/UserInfoInqyResDTO.java new file mode 100644 index 0000000..cd9c8a5 --- /dev/null +++ b/prd/src/main/java/site/ocr/prd/dto/UserInfoInqyResDTO.java @@ -0,0 +1,24 @@ +package site.ocr.prd.dto; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + +@Getter +@Setter +public class UserInfoInqyResDTO { + + class Request { + @JsonProperty("id") + String id; + + @JsonProperty("properties") + + } + + class Properties { + + } +} \ No newline at end of file