Expo로 웹뷰앱을 만들었는데, kakao 로그인이 안됩니다

expo로 기존 웹을 붙여 웹뷰앱을 만들었습니다, 그런데 카카오 로그인 하는데, 새창으로 넘어가더니 더이상 진전인 안됩니다. 아래와 같이 해당함수에서 멈춥니다.

Kakao.Auth.login({
success: this.loginForKakao,
fail: function (err) {
return alert(JSON.stringify(err));
}
});

제가 볼땐 앱에서 나가서 새로운 사이트로 이동해서 그러는거 같은데, 혹시 새창으로 가지 않고 할 수있는 방법이 있을까요? 아님 다른 방법이라도 제시 부탁드려요.

사용하신 함수는 팝업방식로그인으로 JS SDK v2에서는 더이상 제공하지 않는 기능입니다.

JS SDK authorize함수를 사용하셔서 팝업이 아닌 리다이렉트 방식으로 사용하시거나

웹뷰에서 팝업처리 할 수 있는 아래 내용을 앱에 추가구현하셔야합니다.

Kakao Developers

여전히 안됩니다…다 사용해봤는데,
Can’t open url: intent:#Intent;action=com.kakao.talk.intent.action.CAPRI_LOGGED_IN_ACTIVITY;관련 에러가 남습니다. expo로 웹뷰앱을 만들었는데, manifast설정파일등 어디서 해야할지 모르겠습니다…
제발 도움 부탁드려요

저도 같은 에러로 고통받고 있습니다. 제발 도움의 손길을… ㅠㅠ!

@diony @safespec

Can’t open url: intent:#Intent;action=com.kakao.talk.intent.action.CAPRI_LOGGED_IN_ACTIVITY

해당 에러는 인텐트 스킴을 오픈하지 못하는 에러로

(1) AndroidManifest에 카카오톡 패키지명 선언하시고

Kakao Developers

(2) 웹뷰 shouldOverrideUrlLoading에 앱실행 구문 작성하시면됩니다.

https://developers.kakao.com/docs/latest/ko/getting-started/sdk-js#android-execute-kakaotalk

제가 expo라는 리액트기반의 웹을 웹뷰앱으로 만들어주는 플랫폼인데, 여기서 안드로이드소스를 만질수가 없어요, 위에 알려주는 구문은 안드로이드소스를 보라는 말씀같은데, 맞는건지? 아니면 위의구문을 상관없이 쓸수있다는건지 알려주세요.

말씀하신 expo 에 대해 제가 알지 못하여 말씀 드린 앱 레벨에서 웹뷰 컨트롤이 가능한지 알려드리긴 어려울 것 같고

확인 해보셔서 구현할 수 없다면 팝업방식이 아닌 authorize 방식 로그인 구현 해보시면 좋을 것 같습니다.

authorize 방식으로 해보고있는데, 이걸로 하면
‘’’
[Unhandled promise rejection: Error: Could not open URL ‘#Intent;action=com.kakao.talk.intent.action.CAPRI_LOGGED_IN_ACTIVITY;launchFlags=0x08880000;S.com.kakao.sdk.talk.appKey=d12ed06f39b5f1564de65176e48b45f7;S.com.kakao.sdk.talk.redirectUri=https://www.andoreview.com/oauth;S.com.kakao.sdk.talk.kaHeader=sdk/1.43.1%20os/javascript%20sdk_type/javascript%20lang/ko-KR%20device/Linux_armv8l%20origin/http%3A%2F%2F172.16.11.218%3A8080;S.com.kakao.sdk.talk.extraparams=%7B%22client_id%22%3A%22d12ed06f39b5f1564de65176e48b45f7%22%2C%22redirect_uri%22%3A%22https%3A%2F%2Fwww.andoreview.com%2Foauth%22%2C%22response_type%22%3A%22code%22%2C%22auth_tran_id%22%3A%22b9d3pl6h5kd12ed06f39b5f1564de65176e48b45f7lft4uouk%22%2C%22is_popup%22%3Atrue%7D;S.browser_fallback_url=https%3A%2F%2Fkauth.kakao.com%2Foauth%2Fauthorize%3Fclient_id%3Dd12ed06f39b5f1564de65176e48b45f7%26redirect_uri%3Dhttps%253A%252F%252Fwww.andoreview.com%252Foauth%26response_type%3Dcode%26auth_tran_id%3Db9d3pl6h5kd12ed06f39b5f1564de65176e48b45f7lft4uouk%26ka%3Dsdk%252F1.43.1%2520os%252Fjavascript%2520sdk_type%252Fjavascript%2520lang%252Fko-KR%2520device%252FLinux_armv8l%2520origin%252Fhttp%25253A%25252F%25252F172.16.11.218%25253A8080%26is_popup%3Dfalse;end;’: No Activity found to handle Intent
‘’’
이런에러가 나더라구요…

안드로이드 기준 설명 드립니다.


intent:#Intent;action=com.kakao.talk.intent.action.CAPRI_LOGGED_IN_ACTIVITY

카카오 로그인 시, 웹뷰 브라우저에서 인텐트 스킴 URL이 호출됩니다,.
위 주소는 http, https 스킴으로 시작하는 일반적인 URL이 아닌 관계로 기본적으로 웹뷰에서 해당 주소를 실행시킬 수 없기에 오류가 발생합니다.

이를 위해서는 앞서 설명드린 바와 같이 앱 실행 처리를 해주셔야 합니다.
다만, 리액트 네이티브의 경우 앞서 가이드한 바와 같이 직접 네이티브 코드를 수정하실 수 없기에 해당 오픈소스측의 가이드를 참고 하여 조치하셔야 합니다.

해당 오픈 소스측의 문서를 참고 부탁드립니다.

https://github.com/react-native-webview/react-native-webview/blob/master/docs/Custom-Android.md

1개의 좋아요

아래는 로그입니다.
‘’’
카카오 인증 코드 hGsHWY9ybIoxeKu3HYBWkog2xvKGTZf4KISp78c4GJ_haJrmOvBunynxIoout6v67Hiu1go9c5oAAAGHMIDcDw 12:12:45
data: undefined 12:12:45
GET /oauth?code=hGsHWY9ybIoxeKu3HYBWkog2xvKGTZf4KISp78c4GJ_haJrmOvBunynxIoout6v67Hiu1go9c5oAAAGHMIDcDw 200 27.826 ms - 280666 12:12:45

ERROR connect ECONNREFUSED 127.0.0.1:80 12:12:45

at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1187:16)
12:12:49
queryString: grant_type=authorization_code&client_id=e146f2b52d3ef243c4901b141d6e7ed9&redirect_uri=http%3A%2F%2F172.16.11.218%3A8080%2Foauth&code=hGsHWY9ybIoxeKu3HYBWkog2xvKGTZf4KISp78c4GJ_haJrmOvBunynxIoout6v67Hiu1go9c5oAAAGHMIDcDw

Request failed with status code 401

‘’’
방식은 window.Kakao.Auth.authorize()로 하여 위와같이 인증코드는 잘 가져오는데, https://kauth.kakao.com/oauth/token?queryString 토큰 가져올라고 하는데, 응답이 없어요…

Client Secret 을 활성화 하신 경우, 접근토큰 발급 시, client_secret 파라미터가 누락되면 KOE010 오류가 발생합니다.

해당 옵션을 비활성화 하거나, client_secret 파라미터를 전달 부탁드립니다.

설정하기 | Kakao Developers 설정하기 security-client-secret