냉장고 관리 서비스를 만들면서 사용자가 손쉽게 사용할 수 있는 카카오 로그인을 사용하였다.

카카오톡 애플리케이션 생성

카카오톡 애플리케이션은 kakao developers에서 만들 수 있다. 만들고 나면 카카오 로그인에 들어가 로그인을 활성화하고 OpenID Connect도 활성화한다. OpenID Connect는 로그인할 때 사용자 코드와 이메일을 받기 위해서이다. 그리고 Redirect URI를 입력해야한다. REST API를 사용하려면 필수적으로 입력해야 한다.

그 다음은 카카오 로그인 > 동의항목이다. 동의항목에서 다른 건 필요없고 카카오계정(이메일)이 필요하다. 이를 활성화시키기 위해서는 앱을 비즈앱으로 전환해야한다. 하라는 대로 하면 된다. 사업자 등록증이 없어도 된다.

로그인

과정은 크게 인가코드 받기, 토큰 받기, 사용자 로그인 처리로 나누어져 있다.

  1. 사용자가 카카오 로그인 페이지(api/kakao/login) 접속한다.
  2. 서버는 리다이렉트로 카카오 인증 서버 주소(kauth.kakao.com/oauth/authorize?response_type=code&client_id=${REST_API_KEY}&redirect_uri=${REDIRECT_URI})를 보낸다.
  3. 사용자는 이메일 비번을 입력하고, 정보 제공(이메일)에 동의한다.
  4. 카카오 인증서버는 카카오 애플리케이션에 등록했던 Redirect URI에 인가 코드를 담아서 리다이렉트한다.
  5. 서버는 카카오 인증 서버에 인가 코드와 그외 정보를 담아서 보낸다.
  6. 카카오 인증 서버는 토큰과 ID 토큰 등을 보낸다.
  7. 서버에서 적절히 로그인 처리한다.

ID 토큰에는 회원 번호(사용자 아이디)와 이메일이 담겨 있다. 데이터베이스에 조회를 해서 이에 해당하는 정보가 없을 경우 회원가입을 진행한다. 참고로 회원 번호는 카카오 애플리케이션에 따라 회원에게 발급되는 고유한 번호이며 바뀌지 않는다. 이는 카카오 로그인 > 고급에 나와있다.

회원가입

로그아웃