스프린트에서는 깃헙으로 소셜 로그인을 연동했었지만, 아무래도 깃헙은 프로그래머 위주이다 보니 프로젝트에서는 카카오를 사용해 소셜 로그인을 구현해보기로 했습니다.
원래는 네이버를 사용하기로 했는데 API 문서 등이 카카오가 더 쉽게 구현되어 있는 것 같아 카카오로 선회하게 되었습니다. 물론 상대적으로 쉬워 보인다는 것일 뿐, 실제로 진행해보려니 어려운 지점들이 많네요.
(네이버는 테스트 이전에도 이것저것 요구하는 게 많아 바로바로 테스트해보기가 쉽지 않더라구요.)
이것저것 알아보면서 꾸역꾸역 진행한 과정은 다음과 같습니다.
- api 사용을 위한 기본적인 정보 등록을 진행한다. (앱설정, REST API 키 발급, Redirect URI 저장 등)
- 소셜 로그인 버튼을 누를 경우 카카오 인증 페이지로 리다이렉트한다.
- 인증을 통해 Access Token 을 발급받을 코드를 부여받는다.
발급받은 코드로 Access Token 과 Redirect Token 을 발급받는다.Access Token 을 이용해 사용자 정보를 받아온다.
postman 을 사용해 코드를 발급받는 데까지는 확인을 했는데, 그 이후 과정을 진행하지 못했습니다. 아무래도 주말이 지나고 그동안 작성한 코드를 병합한 다음에나 작업을 이어나갈 수 있을 듯 싶네요.
제 3자의 소셜 로그인을 빌려오는 방식이다 보니, 서버나 클라이언트가 단독적으로 일을 진행하기는 쉽지 않은 듯 합니다. 물론 아직 제가 잘 모르는 탓일 수도 있겠지만 말이죠.
소셜 로그인 흐름도를 간략하게 정리해보겠습니다. 위에서 정리한 과정과 기본적으로는 흡사한 형태입니다.
➜ 클라이언트에서 서버로 소셜 로그인을 진행하기 위한
GET
요청을 보낸다.
➜ 서버는GET
요청을 받으면 카카오 로그인 동의 화면으로 리다이렉트 한다.
➜ 사용자가 카카오 로그인에 동의할 경우 미리 설정한 Redirect_URI 로 리다이렉트 되고, 인가 코드가 발급된다.
➜ 클라이언트는 인가 코드를 이용해 카카오에 토큰을 요청한다.
➜ 클라이언트는 발급받은 Access Token 을 서버로 전달(POST
)한다.
➜ 서버에서 발급받은 Access Token 으로 사용자 정보를 카카오에 요구한다.
앞서 말씀드린대로 중간에서 작업이 멈춘 관계로, 그 이후의 흐름에 대해서는 추가적인 작업이 진행되어야 확인이 가능할 것 같습니다. 조금 더 확실한 자료가 궁금하신 분들을 위해 아래에 참고하고 있는 자료들을 링크로 걸어두도록 하겠습니다.