하이브리드 앱 카카오 로그인 연동중 궁금한게있습니다

안녕하세요

현재 카카오 로그인 연동 개발중에 있습니다.

안드로이드 경우 웹뷰에서 Kakao.Auth.authorize 호출을 통해서 실행하면 외부 카카오톡 실행이 되는데 (intent 스키마 붙어서 로그찍히는거 확인했습니다.)

ios의 경우 카카오톡 실행이 되질 않는데 이게 정상인가요? (문서에는 kakaolink 스키마가 있을거라고 하는데 https로만 찍힙니다.)

문서는 다음을 참고했습니다.

감사합니다

1개의 좋아요

안녕하세요.

ios의 경우 카카오톡 실행이 되질 않는데 이게 정상인가요?

Kakao.Auth.authorize 호출 시,
ios도 톡을 실행할 수 있는 환경이라면 톡이 뜨는 것이 정상입니다.

(1) 웹뷰내 navigationAction에 카카오톡 실행 구문 있는지 확인

Kakao Developers

이렇게 해보시겠어요?

if let url = navigationAction.request.url
            , ["kakaokompassauth", "kakaolink", "kakaoplus"].contains(url.scheme) {

url.scheme 부분을 로그를 살펴봐도 위의 “kakaokompassauth”, “kakaolink”, “kakaoplus” 이 나오진 않습니다. 모두 http, https로만 찍힙니다.

제가 생각하기로는 웹페이지로 연결하는 url을 넘겨주는거 같습니다.

개발장비는 다음을 사용하고있습니다.
iphone 6s
Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148

추가정보가 필요하다면 알려주십시오.

안녕하세요.

확인해보니 iOS 에서는 유니버설 링크로 카카오톡앱을 호출하기때문에 https로만 찍히는게 맞네요.
위 if문에는 "kakaolink"만 있으면 되겠습니다.

유니버설 링크는 별도 처리 없이 호출만 되면 되는데, 별도 처리하신 부분있나요?
iOS에 카카오톡앱 로그인도 잘되어있는지 확인 부탁드려요.

Kakao Developers

카카오톡 로그인은 잘되어있는것으로 확인했습니다.

답변해주신 부분 이후의 코드를 제거하여 실행했을 경우 웹뷰 내에서 카카오 로그인 웹페이지로 이동합니다.
이부분.
if let url = navigationAction.request.url , [“kakaokompassauth”, “kakaolink”, “kakaoplus”].contains(url.scheme) {

아래는 카카오톡 연동 버튼 눌렀을시(Kakao.Auth.authorize) 연달아 페이지 변경되는 url 로그 입니다.
https는 링크돼서… 일부러 앞글자 한칸 띠웠습니다

h ttps://talk-apps.kakao.com/scheme/kakaotalk%3A%2F%2Finappbrowser%3Furl%3Dhttps%253A%252F%252Fkauth.kakao.com%252Foauth%252Fauthorize%253Fclient_id%253D7e02fda395f0e7314348707d26919cdd%2526redirect_uri%253Dhttp%25253A%25252F%25252F192.168.0.203%25253A8053%25252Flogin%25252Fkakao%2526response_type%253Dcode%2526auth_tran_id%253Dplmfrgpdomc7e02fda395f0e7314348707d26919cddl6q5228x%2526is_popup%253Dtrue%2526ka%253Dsdk%25252F1.43.0%252520os%25252Fjavascript%252520sdk_type%25252Fjavascript%252520lang%25252Fko-kr%252520device%25252FiPhone%252520origin%25252Fhttp%2525253A%2525252F%2525252F192.168.0.203%2525253A8053&web=https%3A%2F%2Fkauth.kakao.com%2Foauth%2Fauthorize%3Fclient_id%3D7e02fda395f0e7314348707d26919cdd%26redirect_uri%3Dhttp%253A%252F%252F192.168.0.203%253A8053%252Flogin%252Fkakao%26response_type%3Dcode%26auth_tran_id%3Dplmfrgpdomc7e02fda395f0e7314348707d26919cddl6q5228x%26ka%3Dsdk%252F1.43.0%2520os%252Fjavascript%2520sdk_type%252Fjavascript%2520lang%252Fko-kr%2520device%252FiPhone%2520origin%252Fhttp%25253A%25252F%25252F192.168.0.203%25253A8053%26is_popup%3Dfalse

h ttps://kauth.kakao.com/oauth/authorize?client_id=7e02fda395f0e7314348707d26919cdd&redirect_uri=http%3A%2F%2F192.168.0.203%3A8053%2Flogin%2Fkakao&response_type=code&auth_tran_id=plmfrgpdomc7e02fda395f0e7314348707d26919cddl6q5228x&ka=sdk%2F1.43.0%20os%2Fjavascript%20sdk_type%2Fjavascript%20lang%2Fko-kr%20device%2FiPhone%20origin%2Fhttp%253A%252F%252F192.168.0.203%253A8053&is_popup=false

h ttps://accounts.kakao.com/login?continue=https%3A%2F%2Fkauth.kakao.com%2Foauth%2Fauthorize%3Fis_popup%3Dfalse%26ka%3Dsdk%252F1.43.0%2520os%252Fjavascript%2520sdk_type%252Fjavascript%2520lang%252Fko-kr%2520device%252FiPhone%2520origin%252Fhttp%25253A%25252F%25252F192.168.0.203%25253A8053%26auth_tran_id%3Dplmfrgpdomc7e02fda395f0e7314348707d26919cddl6q5228x%26response_type%3Dcode%26redirect_uri%3Dhttp%253A%252F%252F192.168.0.203%253A8053%252Flogin%252Fkakao%26through_account%3Dtrue%26client_id%3D7e02fda395f0e7314348707d26919cdd&talk_login=hidden

**https://talk-apps.kakao.com/scheme/kakaokompassauth**

위 주소로 시작하는게 유니버설링크입니다.
기재해주신 주소에 없는 것을 보니 카카오톡앱을 실행할 수 없는 환경인 것 같네요.

카카오톡 앱을 실행할 수 있도록 Info.plist 설정 하셨나요?

Kakao Developers

Info.plist 부분에 LSApplicationQueriesSchemes를 설정해서 해봤는데 여전히 같은 형식의 로그가 보내지며, 마찬가지로 웹뷰에서 카톡 로그인 웹페이지가 뜹니다.

이부분이 이해가 가지 않습니다.

제가 지금 연동하고있는것은 안드로이드, ios 모두 웹뷰를 씌워서 로그인 연동기능을 개발하고 있습니다.

안드로이드 같은경우 Kakao.Auth.authorize(javascript sdk) 호출 후 페이지이동시 네이티브 코드쪽에서 받은 intent://값으로 카톡앱 실행해서 권한 허용받고 리턴값 받아서 정상적으로 연동이 됩니다.

ios는 아직 연동이 정상적으로 되지않아서 확실하지않지만…
ios도 마찬가지로 웹뷰에서 Kakao.Auth.authorize(javascript sdk) 호출 후 이동하는 url(유니버셜 링크)을 통해서 카톡 앱이 실행되는것으로 파악하고있습니다.

그런데 마지막 보내주신 문서링크는 ios sdk를 통해서 네이티브 코드에서 사용하는거 같은데…그것을 설정 하고 안하고에 따라

같은 형태의 주소로 보내주는건가요?

웹뷰를 통해서 보내지는 무엇을 통해서 카톡 실행가능 여부를 판단하는지 모르겠지만…
아래의 ‘h ttps://talk-apps.kakao.com/scheme/kakaotalk’ 부분이 scheme/kakaokompassauth형태로 와야하는게 아닌가 싶습니다.

아니면 제가 따로 설정안한게 있을까요? 혹은 javascript sdk를 이용해서는 ios에서는 카카오 로그인이 안된다거나?

 그런데 마지막 보내주신 문서링크는 ios sdk를 통해서 네이티브 코드에서 사용하는거 같은데…그것을 설정 하고 안하고에 따라
 'https://talk-apps.kakao.com/scheme/kakaokompassauth' 같은 형태의 주소로 보내주는건가요?

기재해주신 아래 주소도 유니버설 링크로 카카오톡앱 호출에 사용됩니다.

https://talk-apps.kakao.com/scheme/kakaotalk

호출자체는 문제 없고 톡을 못띄우는 원인이 있을 것 같은데요.
제가 만든 iOS 인앱브라우저에서 Kakao.Auth.authorize(javascript sdk) 호출 로그인하는 앱은 카카오톡 앱이 호출이 잘되어서 재현테스트를 해봐야할 것 같은데요.

(1) 인앱브라우저에서 띄우는 사이트 URL알려주시면 제가 만든 앱에서 카카오 로그인 해보도록 하겠습니다.

아래내용은 제가 iOS 인앱브라우저에서 정상작동한 내용과 유니버설 링크 URL입니다.

https://talk-apps.kakao.com/scheme/kakaotalk%3A%2F%2Finappbrowser%3Furl%3Dhttps%253A%252F%252Fkauth.kakao.com%252Foauth%252Fauthorize%253Fclient_id%생략

KakaoTalk_Video_2022-08-12-18-20-04.mp4.zip (1.6 MB)

해결 했습니다. 감사합니다.