카카오 로그인 관련 문의드립니다

안녕하세요.
개발도중 몇가지 확인하고 싶어 문의 남깁니다.

현재 UNIQLO In App으로 카카오간편가입 서비스 이용 시, 카카오플랫폼의 로그인을 요구함에 따라 아래와 같이 답변 받았었습니다.
=>>
Rest API방식으로 개발되어 있는 부분을 JS SDK 방식으로 변경해주시면,
모바일에서 브라우저 종류에 상관없이 카카오톡으로 로그인하여, 계정 정보를 별도로 입력하지 않아도 됩니다.

  1. PC 버전에서는 스크립트 방식으로 기존에도 사용하고 있었는데
    Kakao.Auth.login 를 통해 카카오 진입을 했습니다.
    그런데 모바일기기에서는 Kakao.Auth.authorize 를 권장하는 다른 댓글을 보았습니다.
    첫 호출만 스크립트 Kakao.Auth.authorize 호출, 그 후 리다이렉트 방식이라 REST API 로 토큰받기, 사용자 조회 등을 진행시 모바일 브러우저 종류에 상관없이 계정정보 별도로 입력하지 않아도 되는건가요?

  2. REST API → 스크립트 변경 후 테스트해 보니 이전 REST API 를 사용하고 있을 때에는
    크롬 모바일 버전으로 해당 페이지 띄웠을 경우에도 카카오 동의창이 잘 열리고 로그인이 잘 되는데
    Kakao.Auth.authorize 사용 시 카카오 동의창 뜨기 전 오류 발생합니다.

image

해당 url 을 1분동안 매초 호출 후 오류페이지, 스크립트 오류 발생

image

모바일 기기에서는 문제 없이 잘 넘어갑니다.
Kakao.Auth.authorize 때문에 오류 발생하는건지 스크립트 형식을 사용할 경우에 오류가 발생하는건지 궁금합니다.

답변부탁드립니다.
감사합니다.

안녕하세요.

  1. PC 버전에서는 스크립트 방식으로 기존에도 사용하고 있었는데
    Kakao.Auth.login 를 통해 카카오 진입을 했습니다.
    그런데 모바일기기에서는 Kakao.Auth.authorize 를 권장하는 다른 댓글을 보았습니다.
    첫 호출만 스크립트 Kakao.Auth.authorize 호출, 그 후 리다이렉트 방식이라 REST API 로 토큰받기, 사용자 조회 등을 진행시 모바일 브러우저 종류에 상관없이 계정정보 별도로 입력하지 않아도 되는건가요?

Kakao.Auth.login은 일부 브라우저에서만 카카오톡으로 간편로그인을 지원하고 인앱브라우저에서 별도 팝업처리가 필요하여
Kakao.Auth.authorize 방식을 권장드립니다.
PC에서 Kakao.Auth.authorize 호출 시, 리다이렉트 되며 REST API 방식과 동일하게 진행됩니다.

카카오톡이 설치된 모바일 기기에서 브라우저 종류에 상관없이 계정정보 별도로 입력하지 않고 설치된 카카오톡으로 인증 후, 리다이렉트 URI로 되돌아가게됩니다. (물론 최초 로그인 시, 제3자정보제공 동의창은 표시됩니다.)

  1. REST API → 스크립트 변경 후 테스트해 보니 이전 REST API 를 사용하고 있을 때에는
    크롬 모바일 버전으로 해당 페이지 띄웠을 경우에도 카카오 동의창이 잘 열리고 로그인이 잘 되는데
    Kakao.Auth.authorize 사용 시 카카오 동의창 뜨기 전 오류 발생합니다.

모바일에서 카카오톡으로 인증하기 위해 인텐트 스킴을 호출하고 인증상태를 확인하기 위해 폴링합니다.
하지만, PC에서 개발자 모바일 모드로 로그인 시, 인텐트 스킴호출하면 처리 할 수 없으므로 위와 같이 에러 발생합니다.

실제 테스트 기기나 에뮬레이터로 테스트 부탁드립니다.

감사합니다.

안녕하세요.
답변 감사합니다.
답변주신대로 개발 완료 및 실 서비스 반영했습니다.

그런데 앱에서 하나 이상한 점이 있어서 추가 문의드립니다.
카카오 앱이 열려있는 상태에서, ( 백그라운드에서 실행 중 )
유니클로 앱에서 카카오 로그인을 하려고 시도 시,

  1. 카카오 앱이 열려있는 상태

1-1. 안드로이드
카카오 앱이 다시 열립니다.
카카오앱 닫거나 뒤로가기 후 유니클로 앱 재 실행하면 로그인 완료되어있음.

1-2. 아이폰
카카오 앱이 다시 열립니다.
"사용 중이던 서비스로 이동하여 로그인을 완료해주세요 [닫기] "
카카오앱 닫거나 뒤로가기 후 유니클로 앱 재 실행하면 로그인 완료되어있음.

  1. 카카오 앱이 열려있지 않은 상태

2-1. 안드로이드
카카오 앱 열리지 않은 상태로 카카오 로그인 완료.

2-2. 아이폰
1-2 와 현상 동일

왜 이런 현상이 발생하는지 궁금합니다.
수정방안이 있다면 그 방법도 함께 답변주시면 감사하겠습니다.

답변 부탁드립니다.
감사합니다.

안녕하세요~

확인을 위해 앱 ID 알려주세요~


앱ID
https://developers.kakao.com/ 의 내 애플리케이션>앱 설정>요약 정보 : 기본정보에 있는 앱 ID
숫자로된 ID 입니다~
ex) 123456

테스트에서도 동일하게 발생하고 있기 떄문에 테스트앱 ID 전달드리겠습니다.

340622

로그상 JS SDK팝업방식이 섞여 있는데요. 처음 문의주신 JS SDK authorize 방식 로그 기준으로
제작하신 앱의 인앱 브라우저에서 카카오 로그인 하시는 걸로 이해했습니다.

1-1. 안드로이드
카카오 앱이 다시 열립니다.
카카오앱 닫거나 뒤로가기 후 유니클로 앱 재 실행하면 로그인 완료되어있음.

일반적으로 JS SDK authorize 호출 시, 카카오톡 앱의 intent스킴을 호출하여
(1) 최초 가입 시, 동의창을 띄우고 동의 후, 앱으로 돌아가 바로 로그인 되야합니다.
(2) 카카오 로그인 시도 시, 앱으로 인가요청만하고 바로 로그인이 되야하는데요.

1-1 상황은 동의창을 띄운 상황에서 뒤로가기 하신걸까요?


1-2. 아이폰
카카오 앱이 다시 열립니다.
"사용 중이던 서비스로 이동하여 로그인을 완료해주세요 [닫기] "
카카오앱 닫거나 뒤로가기 후 유니클로 앱 재 실행하면 로그인 완료되어있음.

아이폰의 경우 iOS정책상 호출한 앱으로 돌려보낼 수 없기때문에 직접 뒤로가기(좌측상단 “:arrow_backward:︎호출한 앱이름” 선택)하셔야하고 제작하신 앱으로 되돌아갔을때 정상 로그인 되어 있다면 정상 동작입니다.


문제가 되는 상황은 1-1로 보이는데요.
재현 영상 첨부 가능하실까요?

mobizen_20211208_171106.zip (5.5 MB)

mp4 동영상 파일 압축해서 첨부했습니다.

카카오 앱 실행 후
유니클로 앱 실행
카카오 로그인 시 카카오 앱 열림
뒤로가기 버튼으로 카카오 앱 나가면
유니클로에서 로그인 되어있음.

(동영상에서는 뒤로가기 버튼 클릭 시 로그인되는 것 처럼 보이지만 시간차를 두면 이미 로그인이 되어있습니다)

영상 첨부 감사합니다~

모바일 기기에서 JS SDK로 인텐트 스킴 호출하여 카카오 톡으로 로그인 하게되면
JS SDK는 상태 폴링을 하다 성공응답을 받으면 스스로 로그인 완료 처리 하므로 웹페이지에는 문제가 없어보입니다.

제작하신 앱의 shouldOverrideUrlLoading 구문 처리와 연관 있을 것 같은데요.
아래 가이드 참고 하셔서 다른 처리 있는지 확인해보시겠어요?

Kakao Developers

답변 감사합니다 ~!!!
가이드 문서도 한번 확인해보겠습니다. !

++ 앱에서 로그인 시, 카카오 앱이 열리는건 정상이란 말씀이신거죠?
카카오 앱이 열려있는 상태와 닫혀있는 상태가 다른 이유는 알 수 있을까요 ?

카카오 앱이 열리는건 정상이란 말씀이신거죠?

제가 테스트용으로 만든 웹앱에서는 카카오톡을 intent스킴으로 호출하지만 잠깐 깜박이고 로그인 되거든요.

카카오 톡 앱이 열린채로 있는게 문제인 것 같습니다.
추측하기엔, shouldOverrideUrlLoading에서 가이드와 다르게 카카오톡 앱을 실행 시킨것이 아닌가 싶기도해요.