File tree Expand file tree Collapse file tree
src/main/java/com/example/cake_way/member Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -35,6 +35,17 @@ public ResponseEntity<?> callback(@RequestParam("code") String code) throws IOEx
3535 return ResponseEntity .ok (loginResponseDto );
3636 }
3737
38+ @ GetMapping ("/kakao/callback2" )
39+ public ResponseEntity <?> callback2 (@ RequestParam ("code" ) String code ) throws IOException {
40+ String accessToken = kakaoService .getKakaoAccessToken2 (code );
41+
42+ KakaoUserInfoResponseDto userInfo = kakaoService .getUserInfo (accessToken );
43+
44+ LoginResponseDto loginResponseDto = memberService .login (userInfo );
45+
46+ return ResponseEntity .ok (loginResponseDto );
47+ }
48+
3849 @ Value ("${CLIENT_ID}" )
3950 private String client_id ;
4051
Original file line number Diff line number Diff line change @@ -95,4 +95,30 @@ public void getKakaoCode() {
9595
9696
9797 }
98+
99+ public String getKakaoAccessToken2 (String code ) {
100+
101+ KakaoTokenResponseDto kakaoTokenResponseDto = WebClient .create (KAUTH_TOKEN_URL_HOST ).post ()
102+ .uri (uriBuilder -> uriBuilder
103+ .scheme ("https" )
104+ .path ("/oauth/token" )
105+ .queryParam ("grant_type" , "authorization_code" )
106+ .queryParam ("client_id" , clientId )
107+ .queryParam ("code" , code )
108+ .queryParam ("redirect_uri" , "https://cake-wayy.com/login/callback" ) // 나중에 프론트로 바꿔주기
109+ .build (true ))
110+ .header (HttpHeaders .CONTENT_TYPE , HttpHeaderValues .APPLICATION_X_WWW_FORM_URLENCODED .toString ())
111+ .retrieve ()
112+ .onStatus (HttpStatusCode ::is4xxClientError , clientResponse -> Mono .error (new RuntimeException ("Invalid Parameter" )))
113+ .onStatus (HttpStatusCode ::is5xxServerError , clientResponse -> Mono .error (new RuntimeException ("Internal Server Error" )))
114+ .bodyToMono (KakaoTokenResponseDto .class )
115+ .block ();
116+
117+
118+ log .info (" [Kakao Service] Access Token ------> {}" , kakaoTokenResponseDto .getAccessToken ());
119+ log .info (" [Kakao Service] Refresh Token ------> {}" , kakaoTokenResponseDto .getRefreshToken ());
120+ log .info (" [Kakao Service] Scope ------> {}" , kakaoTokenResponseDto .getScope ());
121+
122+ return kakaoTokenResponseDto .getAccessToken ();
123+ }
98124}
You can’t perform that action at this time.
0 commit comments