Kakao 로그인을 위한 인가코드 받기 질문

안녕하세요.

Kakao 를 사용하여 메시지 전송을 하기 위한 Web App을 Rest API 를 기반으로 만들고자 합니다.

그런데, 처음 카카오 로그인 부터 로직을 잘 이해하지 못해서 막혀서 질문 드립니다.

카카오 로그인을 위해 첫 단계가 인가코드 받기 인데, 이를 curl이나 postman을 통해서 날리면, html 태그가 나오더라구요.

뭔가 잘 못 했나 해서, 웹 브라우저에서 이 GET 방식을 실행해 보니 동의 화면이 나오더라구요. 그래서 curl이나 postman에 나오는 html이 이 부분이구나 이해는 했습니다.

그런데, 웹 브라우저에서는 동의하기 버튼을 누르면 redirect_uri로 지정해 놓은 곳으로 화면이 변경 되는데, 인가코드가 어디에 있는지 안 나오더라구요.

또한, curl이나 postman에서는 동의하기 버튼을 누를 수도 없구요.


제가 이 부분을 java를 가지고 처리 하려 하는데. REST API를 통해서 인가 코드를 어떻게 받아서 처리해야 하나요? 동의하기 버튼을 눌러야 인가 코드를 받을 수 있는 것 같은데 이 부분을 코드로 어찌 처리해야 하며, 혹시 redirect_uri는 제가 개발을 하고 있는 PC에 연결 되어 있는 메인 IP에 붙은 도메인을 연결해야 하나요?

안녕하세요.

리다이렉트 URI는 localhost , IP, 도메인 무엇이든 설정된 값으로 테스트 가능합니다.

(1)웹 브라우저에서 이 GET 방식으로 인가 요청 하시면,
(2)카카오 로그인 및 제3자 정보제공 동의하게되고
(3)설정하신 리다이렉트URI로 돌아가게됩니다.

이때 리다이렉트URI에 GET 방식 파라메터로 인가 코드를 전달드립니다.
code파라메터를 받아 액세스 토큰 발급 받으시면됩니다.

인가코드받기 가이드의 Response부분을 참고해주세요.

REST API | Kakao Developers REST API

우선 답변 감사드립니다.

그러면, 카카오를 통해 web app을 만들 때, 로그인, 메시지 보내기 등은 웹 브라우저에 나타나지 않고 백 앤드에서만 돌아가게는 할 수가 없나요?

말씀 대로라면 저희 web app 특정 페이지에서 로그인 버튼을 눌러, 정보제공 동의 페이로 무조건 가고 동의 버튼 누른 후, 인가 코드를 http 형식으로 저희 app의 특정 페이지로 넘오 올 때 받아서 이를 가지고 백 단에서 토큰 받아서 로그인을 해야 한다는 말씀으로 들려서요.

네, 맞습니다.

방식에 따라 JS SDK팝업방식, 리다이렉트 방식 등이 있지만 카카오 계정페이지에서 로그인하거나
카카오톡이 설치된 경우 카카오톡으로 인증하게 되는 것은 동일합니다.
(백엔드에서 로그인하는 방식은 제공하지 않습니다.)


메시지API는 로그인 및 권한 동의를 받아야하고, 동의를 받았다면 백엔드에서 API로 호출하는 방식입니다.

참고 부탁드려요.

감사합니다.

한 가지만 더 여쭙겠습니다. 그럼 저희 web app에서 친구에게 메세지를 보내기 위해서는 로그인 과정에서 정보제공 동의 페이지에서 버튼을 메세지를 보낼 때 마다 사용자가 누르게 해야 한다는 것으로 들리는데…

한번 로그인이 완료되어 세션이 나간 후에도 처음에 정보제공 동의를 한번 받으면 재 로그인 할 때 사용자가 정보제공 동의 페이지를 다시 보지 않고 액세스 토큰 받고 로그인이 되어 바로 메세지를 보낼 수 있게는 할 수 없나요?

버튼을 메세지를 보낼 때 마다

보낼때마다는 아니고,

(1) 로그인 및 토큰 요청으로 디벨로퍼스앱에 연결
(2) 친구목록 조회 및 메시지 발송 권한 동의 1회
진행하면됩니다.

한번 로그인이 완료되어 세션이 나간 후에도 처음에 정보제공 동의를 한번 받으면 재 로그인 할 때 사용자가 정보제공 동의 페이지를 다시 보지 않고 액세스 토큰 받고 로그인이 되어 바로 메세지를 보낼 수 있게는 할 수 없나요?

정보제공 1회 동의 이후는 다시 표시되지 않습니다.