Back-end/SpringBoot

[Spring Boot] 차근차근 OAuth 2.0 구현하기 - (2) Code 가져오기

우리에게 친숙한 카카오의 Resource Server에서 데이터를 받아 볼 것이다.

 

앞선 글에서 봤듯이

🧐 우선 사용자가 카카오를 통해 로그인을 한 후 카카오 Authorization Server에서 Code를 받아오자!

카카오 Authorization Server에서는 Code를 사용자가 로그인을 한 후 동의를 해야 발급을 해준다. 

 

따라서 먼저 사용자에게 로그인 창을 보여줘야 한다.

아래 URL를 통해 사용자에게 로그인을 하도록 요청하고 동의를 받아 낼 수 있다.

https://kauth.kakao.com/oauth/authorize?client_id={REST_API_KEY}&redirect_uri={REDIRECT_URI}&response_type=code HTTP/1.1
  • client_id : 카카오 개발자 센터에 가서 나만의 어플을 만든 후 Rest API 키를 가져오면 된다.

  • redirect_uri :  카카오 Authorization Server는 code를 보내기 때문에 Client Server에서 Code를 받을 uri

 

🔍 redirect_uri 설정하는 법:  플랫폼 → Web밑 카테고리의 작은 글씨의 등록하러 가기 클릭 → 등록하기

redirect_uri를 원하는 uri로 등록하면 카카오 Authorization Server는 이 uri에 code값을 넘겨줄 것이다.

 

 

🔍 넘겨준 코드 값을 Controller의 GetMapping 메소드를 통해 변수에 저장해보자.

 

User의 데이터를 관리하는 UserController에 카카오 Authorization Server에서 Code를 받아오기 위해

아래와 같이 GetMapping 메소드를 만들어주고 uri로 redirect_uri를 설정해주자.

@GetMapping("/auth/kakao/callback") //redirect_uri : /auth/kakao/callback
    public @ResponseBody String kakaoCallback(String code) {
        return "코드는 :" + code;
    }

※ redirect_uri는 /auth/kakao/callback 으로 설정을 해주었다.

 

 

🔌 실행

 

로그인 요청 url로 Get request를 하자.

GET https://kauth.kakao.com/oauth/authorize?client_id={REST_API_KEY}&redirect_uri={REDIRECT_URI}&response_type=code HTTP/1.1

우선 로그인을 한 후 동의를 해주면

 

카카오 Authorization Server는 아래와 같이 redirect_uri에 code를 넘겨줄 것이다.

http://localhost:8081/auth/kakao/callback?code=sfmHZyvBIZCVY1t6PuSt7JYyux7_r9CoNqbI8G3X4TVA1D9_1Mf0ybTA9fccipwmPVeiYwopb7kAAAF0tj0Xrw

 

 

이렇게 카카오 Authorization Server에서 Code를 받아와 저장을 해줬다.

 

다음에는 지금 받은 Code와 Client Id, Client Secret을 사용해 Access_Token을 받아와 보자.

 

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

 

Kakao Developers

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

developers.kakao.com

 

반응형