1. 동작 흐름
•
클라이언트 쪽에서 로그인을 한다.
•
카카오 서버는 redirect url로 code를 전달해준다.
•
code를 이용하여 access_token을 발급받는다.
•
access_token을 서버로 전달한다.
•
서버에서 받은 access_token을 이용하여 카카오 서버에서 사용자 정보를 받는다.
•
받은 사용자 정보를 이용하여 회원가입 또는 로그인을 진행한다.
•
JWT등과 같이 사용자 식별 정보를 클라이언트로 보낸다.
2. 애플리케이션 등록
→ 내 애플리케이션 조회 시 앱 키가 할당 된 것을 볼 수 있음
우리가 사용할 건 REST API 키
•
플랫폼 클릭
•
Redirect URI
→ 활성화 설정 ON
→ Redirect URI는 사용자가 카카오 로그인을 수행했을 때 발급되는 code를 반환할 페이지라고 보면 됨 (클라이언트 개발자가 있다면, 클라이언트에서 처리할 부분)
•
동의항목 설정
3. 카카오 로그인 구현
인가코드는 REST API키를 사용
사용자가 카카오 로그인 페이지를 통해 ‘동의하고 계속하기’를 클릭하면, 미리 설정해둔 Redirect URI로 인가 토큰이 전달 됨.
(1) 인증 코드 요청 및 받기
•
카카오 로그인을 위해서 아래 url로 접속하면 됨
kauth.kakao.com/oauth/authorize?client_id={REST_API_KEY}&redirect_uri={REDIRECT_URI}&response_type=code
JavaScript
복사
REST_API_KEY는 내 애플리케이션 화면에서 확인했던 값을 넣어주면 되고, REDIRECT_URI는 아까 설정했던 uri로 하면 됨
동의하고 계속하기를 누르면 아까 설정했던 redirect_uri로 redirect됨
아까 설정한 경로로 Query String으로 code를 받음
(2) Access Token 받기
이제 인가코드를 받았으니, 이 코드로 카카오서버에 인가토큰을 요청할 수 있음
POST로 요청하고, 결과를 JSON 형식으로 받기 때문에 JSON 파싱에 유용한 Gson라이브러리를 사용
JAVA로 외부 API 값을 받아오는 방법은 3가지가 존재
1.
httpurlconnection
2.
httpclient
3.
spring resttemplate 
HttpURLConnection에 대해 알아보자
HttpClient에 대해 알아보자
RestTemplate에 대해 알아보자