본문 바로가기
카카오 REST API & SDK/카카오 로그인

하이브리드 앱(웹뷰)에서 간편로그인(intent:// 호출) 기준

by kakao-TAM 2021. 7. 28.

팝업 방식으로 작동하는 Kakao.Auth.login은 User-Agent 를 체크하여 일부 브라우저만 간편로그인을 지원합니다.

이는 웹뷰에서 팝업 구현을 하지 않으면 정상적으로 동작하지 않기 때문입니다.

 

해결책

1. Kakao.Auth.authorize 함수의 경우는 모든 웹뷰에서 간편로그인을 지원합니다.

2. Kakao.Auth.login 함수에서 간편로그인을 사용하려면 User-Agent를 변경해야합니다. (wv, Version 제거)

Mozilla/5.0 (Linux; Android 8.0.0; SM-G935S Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Mobile Safari/537.36

 

추가정보

Kakao.Auth.login  함수에서 간편로그인 가능한 기준은 다음과 같습니다.

지원 가능한 카카오톡 버전 : And 9.1.0 / iOS 9.0.0 이상
지원 가능 어플리케이션 : Chrome, Safari 등 기본 브라우저 + Naver / Facebook / Instagram
그외 비표시 (단, 서비스 상황에 따라 버튼 미노출 설정 변경될 수 있음)

intent에 package를 넣지 않는 이유

intent에 package를 넣으면 스토어로 이동할 수 있지만, 
웹뷰 환경에서 타사의 앱을 설치하도록 유도하면 앱 심사에서 탈락하는 히스토리가 있었습니다. 
그래서 fallbackurl만 포함하고 있습니다.

카카오톡 미설치 시, facebook / instagram 인웹뷰에서 톡으로 로그인 반응 없음

모바일 환경에서 JS SDK로 카카오톡을 호출할 때 intent를 사용하고,
앱 호출이 실패하면 S.browser_fallback_url로 이동하도록 구현 하는데요.
https://developer.chrome.com/docs/multidevice/android/intents/

facebook 웹뷰에서 이 intent의 S.browser_fallback_url에 대한 파싱을 구현하지 않은 것으로 보입니다.
https://developers.kakao.com/docs/latest/ko/getting-started/sdk-js#hybrid-app

이부분은 facebook웹뷰에 디펜던시가 있어서 user-agent에 따라 REST-API 방식 로그인 해야합니다.

카카오톡 설치 후, 계정 로그인 안한경우 authorize 호출해도 카카오톡 실행안됨

현재 안드로이드 카카오톡 구조상 미로그인 시에는 앱 전환이 안되고 있습니다.

댓글