actbase / react-kakaosdk

KakaoSDK Bridge for React, React-Native, RNW
MIT License
20 stars 8 forks source link

ios kakaologin이 안됨 #4

Closed dioqio closed 3 years ago

dioqio commented 3 years ago

kakaosdk version : 2.5.6 카카오톡 실행은 되지만 로그인에서 실패함

ChanghyeonYoon commented 3 years ago

로그인 구현 코드와 자세한 재현경로 및 환경을 알려주세요.

dioqio commented 3 years ago

[발생] 안드로이드는 로그인 잘 실행 되나 ios는 로그인시에 카카오톡 실행후 다시 앱으로 전환하나 토큰을 반환하지 않습니다.

[환경] xcode 12.5.1 react": "16.11.0", react-native": "0.62.2", kakaosdk version : 2.5.6

[info.plist]

kakao네이티브코드 kakaokompassauth kakaolink kakaotalk-5.9.7 kakaonavi-sdk

[실행코드] //await kakaoSdk.init('~~~~~'); console.log('kakao Login'); const tokens = await kakaoSdk.login(); console.log('kakao Login tokens: ' + JSON.stringify(tokens)); console.log('kakao get profile'); const profile = await kakaoSdk.getProfile(); console.log('kakao Login profile : ' + JSON.stringify(profile));

[xcode log] kakao Login [AuthController.swift 323:21] -> code_verifier: XTHUUNfVNRoTrXl2a41VH6WesiR9vSxf6eM4Gz2tR8Rlff6bSA5daxzXo4vdq+MtTZsTZipX95oOoX4Z67za0w [AuthController.swift 326:25] -> code_challenge: NBijUehuXagig8dp4WO6UZSv0WD495EupjnR2drEl1g [AuthController.swift 99:25] -> 카카오톡 실행:: kakaokompassauth://authorize?response_type=code&params=%7B%22code_challenge%22:%22NBijUehuXagig8dp4WO6UZSv0WD495EupjnR2drEl1g%22,%22code_challenge_method%22:%22S256%22%7D&headers=%7B%22KA%22:%22sdk%5C/2.5.6%20sdk_type%5C/swift%20os%5C/ios-14.7.1%20lang%5C/ko-KR%20res%5C/375x667%20device%5C/iPhone%20origin%5C/앱번들%20app_ver%5C/1.1.71%22%7D&client_id=네이티브키&redirect_uri=kakao네이티브키://oauth

ChanghyeonYoon commented 3 years ago

@Dio4U KakaoSDK.login() 에서 정보를 반환하지 않는다는건가요?

dioqio commented 3 years ago

네.. 로그인 이후로 실행이 끝납니다. 로그 보시면 'kakao Login'만 찍힌걸 확인 하실 겁니다. 그래서 로그인이 실행되다 말고 앱전환을 해 버리는 것 같습니다.

[Fri Aug 27 2021 19:47:58.573] LOG kakao login [Fri Aug 27 2021 19:47:59.497] LOG app has come to the background! [Fri Aug 27 2021 19:47:59.869] LOG app has come to the foreground!

suhanmoon commented 3 years ago

해당 async 에서 throw가 발생하고있는것같습니다 try catch 로 묶은뒤 exception 확인 부탁드립니다.

dioqio commented 3 years ago

아 코드 생략해서 올렸는데.... 당연히 try catch 코드 적용 했었습니다. exception 리턴을 하지 않습니다. 더해서 RNAKakaoSDK.swift -> login() -> UserApi.shared.loginWithKakaoTalk 에서 리턴이 되지 않고 있습니다.

[실행코드] const loginKakao = async () => { try{ await kakaoSdk.init('~'); console.log('kakao Login'); const tokens = await kakaoSdk.login(); console.log('kakao Login tokens: ' + JSON.stringify(tokens)); const profile = await kakaoSdk.getProfile(); console.log('kakao Login profile : ' + JSON.stringify(profile)); } catch (err) { console.log( "kakao login fail :" + JSON.stringify(err)); } };

ChanghyeonYoon commented 3 years ago

@Dio4U 카카오 developers 에서 카카오 로그인 활성화 및 플랫폼에서 안드로이드, ios 등록하셨는지 확인 부탁드립니다

dioqio commented 3 years ago

네 그 전에 서비스를 잘 하던 앱이었습니다. ^^ 추가로 웹 로그인은 잘 됩니다. 이런 글이 있어 확인 중입니다. https://devtalk.kakao.com/t/swiftui-software-caused-connection-abort/116557/3 https://devtalk.kakao.com/t/topic/114880/6

ChanghyeonYoon commented 3 years ago

@Dio4U AppDelegate.m 소스를 첨부 부탁드립니다

dioqio commented 3 years ago

메일로 AppDelegate.m 소스를 첨부해서 보내 드렸습니다. 감사합니다.

ChanghyeonYoon commented 3 years ago

@Dio4U AppDelegate.m에서

import "WithKakaoSDK.h"를 하신뒤

++ 된 부분 추가하여 확인 부탁드립니다. 해당 이슈관련해서 README 수정하겠습니다.

...

++ if ([WithKakaoSDK isKakaoTalkLoginUrl:url]) return [WithKakaoSDK handleOpenUrl:url]; [[FBSDKApplicationDelegate sharedInstance] application:app openURL:url options:options];

...

return NO; }

dioqio commented 3 years ago

네 잘 됩니다.... 다른분들께도 잘 공유 해 주세요 ^^ 감사합니다.