페이스북(인앱브라우저)에서 카카오싱크 동작 문제

안녕하세요?

현재 카카오싱크를 구현해서 쓰고 있습니다. 그런데 사용자가 페이스북(인앱 브라우저)에서 자사 사이트 게시물을 열어 카카오 간편가입하려고 하면 다소 문제가 있는데 아래 2가지 경우로 나누어 해결법을 여쭤보고자 합니다.

  1. 아이폰X 페북 인앱브라우저에서 Kakao.Auth.login 함수 호출 시 이미 로그인되어있는 카톡 앱으로 전환되지 않구요. 사용자가 새로이 아이디/비번을 입력하게 만듭니다. 카톡 앱이 설치되어있는지 먼저 체크하고 카톡 앱으로 전환하게 할 수 없을까요?

해당 현상 녹화 파일 보기:
https://www.dropbox.com/s/hzv3ystwf8kysxa/iPhone%20X_Not_Jumping_To_App.MOV?dl=0

  1. 안드로이드 (S8+ 기종)에서 사용자가 게시물을 열고 카카오 간편가입 링크를 열어 '동의’를 했는데요. 회원가입 등 처리가 모두 끝나기도 전에 곧바로 페북으로 돌아옵니다. 적어둔 코드가 모두 실행되고 돌아오도록 할 수는 없을까요?

해당 현상 녹화파일 보기:
https://www.dropbox.com/s/34vb8ttjka6utld/S8_Returns_Back_After_Agree.mp4?dl=0

구현 로직/코드 구조는 아래와 같습니다. 위 질문도 다시 적어드립니다:

Kakao.init([JS key]); 
$('.kakao_join').on("click",function (e) { 
//버튼 클릭 시 로그인 과정 실행`
Kakao.Auth.login({
			success: function (authObj) {
				signup(authObj);
			},
			fail: function (err) {
				//Kakao.Auth.login 실패 처리
			}
		});
	});

//1. iPhoneX 의 경우 이 함수에서 카톡 앱이 실행이 안 되고 새로운 로그인 창이 뜹니다. 카톡앱이 설치되어 있는지 확인부터 하고, 로그인되어있는 카톡앱으로 전환하게 만드는 코드는 없을까요?
}

function signup(authObj) {
//로그인 성공 시 정보제공 동의 요청. 
Kakao.API.request({
			url: '/v2/user/me',
			success: function (kakao_res) {
				//회원등록 처리하는 부분. 
                                 //2, 안드로이드 S8+  사실 여기서 이미 중단됐을 수도 있구요...
				window.userId.signup('회원등록 처리 중')
					.done(function (res) {
						if (res.status === "ok") {
							//2. 안드로이드 S8+ (혹은 이전 기종에서도 마찬가지로 발생) 회원 등록이 성공하면 사용자에게 추가로 인풋을 받거나 정보를 처리해야 할 일들도 있는데 곧바로 페북 앱으로 돌아가버립니다. 아래 남은 코드도 모두 실행한 후에 돌아가도록 할 수는 없을까요? 삼성 인터넷 브라우저에서는 이러한 문제가 없습니다.
						} 
					})
					.fail(function (error) {
						//회원등록 실패 시 처리
					});
			},
			fail: function (error) {
				//카톡 정보 불러오기 실패 시 처리 
			},
		});
}

그럼 답변 기다리겠습니다.

감사합니다!

Kakao.Auth.login() 함수는 팝업 방식으로 동작합니다.
팝업 처리에 대한 구현은 3rd-party 웹뷰마다 구현이 달라서 간편로그인 지원이 어렵습니다.
반면에 Kakao.Auth.authorize()는 redirect 방식이기 때문에 대부분의 3rd-party 에서 정상적으로 동작하는 것을 확인했습니다.
Kakao.Auth.authorize()를 사용하시는 것을 추천드립니다.
https://developers.kakao.com/docs/latest/ko/kakaologin/js#login

Kakao.Auth.login()의 success callback은 서비스 페이지 내에서 실행되는 것이고,
카카오톡 앱으로 이동은 '제3자 정보 제공 동의’를 받기 위함이기 때문에 동의 후 페이스북 앱으로 돌아오는 것이 맞습니다.

2개의 좋아요

안녕하세요,

남겨주신 글에 대해서 질문이 있어 문의 드립니다.

“Kakao.Auth.login() 함수는 팝업 방식으로 동작합니다.
팝업 처리에 대한 구현은 3rd-party 웹뷰마다 구현이 달라서 간편로그인 지원이 어렵습니다.”

위에 설명하신 대로라면 혹시 페이스북, 인스타그램 인앱 부라우저 화면에서 카카오 싱크 버튼을 호출할 경우 카카오 계정 (이메일 또는 전화번호) 및 비밀번호가 자동 입력이 않되는건가요? 네이버는 잘 작동하는걸로 확인되있는 상태입니다.

답변 기다리겠습니다.

감사합니다.

@nickhong89

Kakao.Auth.login은 모든 3rd-party 웹뷰 환경에서 동작하는 것을 보장하지 않기 때문에
Kakao.Auth.authorize를 사용하시는 것을 권장드립니다.