카카오 로그인 토큰 관련 질문입니다

현재 생각한 구현 방식은 다음과 같습니다…

  1. 클라이언트에서 카카오 로그인 api를 사용하여 토큰 발급
  2. 클라이언트에서 카카오 토큰(액세스 토큰)을 우리 서버로 보냄
  3. 우리 서버에서 카카오 토큰을 활용하여 user_id 불러옴
  4. 우리 서버에서 user_id에 해당하는 우리 서버 전용 액세스 토큰 생성
  5. 액세스토큰을 클라이언트로 보냄

즉 클라이언트에서 카카오 토큰을 발급받고 이를 직접 서버로 보내는 방식입니다.

https://data-jj.tistory.com/53
하지만 위 링크에 가보시면 카카오 토큰을 그대로 사용하면 안된다고 하더군요…

궁금한 점은 위에서 설명한 방식(클라이언트가 서버로 카카오 토큰을 보냄)도 마찬가지로 카카오 토큰을 그대로 사용하는 것인지, 만약 그렇다면 문제가 발생할 수 있는지 궁금합니다…

긴 글 읽어주셔서 감사합니다…

안녕하세요.

일반적으로 아래와 같이 처리합니다.

  1. 클라이언트에서 카카오 인가 요청 주소를 호출하여 인가코드 발급
  2. 클라이언트로 넘어온 인가코드로 소유하신 시스템 백엔드로 전달하여 백엔드에서 토큰발급
  3. 백엔드에서 토큰을 이용하여 사용자 정보조회

카카오 로그인 및 카카오 API호출에 사용되는 액세스토큰은 보통 보안상 백엔드에서만 사용되도록 구성합니다.

4, 5번은 카카오 로그인과 무관한 소유하신 시스템의 로그인 처리용 토큰 같은데요.
보통은 카카오에서 발급 받은 토큰을 그대로 사용하지 않습니다. (위에서 언급한 보안상 이유로)

참고 부탁드려요.

그렇군요… 친절한 답변 감사합니다!!

  1. 클라이언트에서 카카오 인가 요청 주소를 호출하여 인가코드 발급
  2. 클라이언트로 넘어온 인가코드로 소유하신 시스템 백엔드로 전달하여 백엔드에서 토큰발급
  3. 백엔드에서 토큰을 이용하여 사용자 정보조회

알려주신 과정을 안드로이드 SDK로 수행할려고 합니다.

다만 안드로이드 SDK를 이용하여 카카오 로그인을 구현할 경우 redirect_uri를 따로 설정할 수 있는지 궁금합니다.
(문서에는 따로 나와있는게 안보이네요 ㅠㅠ)

만약 redirect_uri를 따로 설정할 수 없다면, rest api로 구현하는것 말고는 방법이 없을까요?

안녕하세요.

위에 설명드린 방법은 REST-API방식일때구요.
안드로이드 SDK로 사용하신다면 가이드와 같이 SDK통해 함수 호출만 하시면됩니다.
(안드로이드앱의 리다이렉트는 AndroidManifest.xml에 설정합니다.)

Android | Kakao Developers 문서