Spring 심화주차/1주차

2. 카카오 사용자 정보 가져오기

note994 2024. 9. 10. 13:21

카카오 서버에서 인가코드 받기

https://developers.kakao.com/docs/latest/ko/kakaologin/rest-api#request-code

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

카카오 인가코드 받기

login.html
0.00MB

 

basic.js
0.01MB
login.html

우리가 전에 카카오에 등록한 애플리케이션(현재 애플리케이션)에 REST API를 등록해야한다.

1에 올린 주소에서 해당위치 찾아가서 복사
login.html

그리고 아까 빨간 네모부분을 이렇게 붙여넣기 한다.

 

이제 카카오 로그인하기 버튼을 클릭하면 카카오 로그인 창이 뜰것이다.

UserController.java

인가 코드를 컨트롤에서 받으면 그것을 처리할 서비스 클래스를 만듦

KakaoService.java
0.00MB

 

KakaoService 클래스파일이다.

UserController.java

 

우리가 카카오에 애플리케이션을 등록할때 리다이렉트 주소를 설정한적이 있다. 그곳으로 카카오가 인가코드를 보내준다. 이 함수가 카카오가 보낸 인가코드를 처리하는 함수이다.

 

81번째 줄 : KakaoService.kakaologin() 함수에서 받아온 String값은 JWT이다. 그것을 변수에 받는다.

 

88번째 줄 : 우리가 만든 쿠키가 자동으로 브라우저에 Set된다.

90번째 줄 : 메인페이지로 리다이렉트 시킴

 

KakaoService.java

KakaouserInfoDto를 만들어야 한다.

KakaoUserInfoDto.java
0.00MB
KakaoService.java

resTemplate가 Bean 자동 등록이 되지 않는다. 수동등록을 해보자

config 패키지에 RestTemplateConfig 클래스 파일을 만든다.

RestTemplateConfig.java
0.00MB

 

RestTemplateConfig.java

 

17번째와 18번째 줄 : API 호출 시 일정 시간이 지나도 응답이 없다면 끊어버리는 코드이다. 

KakaoService에 붙여넣을 액세스 토큰 요청 코드.txt
0.00MB
KakaoService.java

이 요청 URL은 위에 올린 Kakao Developer 사이트에 들어가면 나온다. 정해진 주소이다.

KakaoService.java

이 값은 아까 REST API 키 값을 복사한 값이다 여기에도 붙여넣어 준다.

 

redirect_uri은 1강의에서 우리가 등록한 리다이렉트 URL이다.

KakaoService - 사용자 정보 요청 코드.txt
0.00MB
KakaoService.java

getToken 메서드로 accessToken을 받았다. 이걸로 사용자 정보 요청 메서드에 매개변수로 넣어 사용자 정보를 요청한다.

 

getKakaoUserInfo 메서드가 사용자 정보 요청 메서드이다.

KakaoService.java

마찬가지로 정해진 URL이며 카카오 개발자 사이트에서 이 URL을 알려준다.

KakaoService.java

응답값을 받는 jsonNode.get 함수에 넣어진 id, properties, kakao_account라는 Key의 이름은 카카오 개발자 사이트에 명시되어 있다.

 

즉, 응답값 Json 데이터중에서 id와 properties와 kakao_account를 받겠다는 것이다.

KakaoService - getToken()
KakaoService - getKakaoUserInfo()

인가 코드가 어떻게 생겼는지 보는 코드

 

이것으로 카카오 로그인을 했을 때 사용자 정보를 서버로 가져오는 실습을 해보았다.