kakao_flutter_sdk: ^1.2.2 와 kakao_flutter_sdk: ^1.3.0-beta.4 에서 모두 시도해보았습니다.
아래의 카카오 로그인 예제를 그대로 테스트 하였습니다.
// 카카오톡 실행 가능 여부 확인
// 카카오톡 실행이 가능하면 카카오톡으로 로그인, 아니면 카카오계정으로 로그인
if (await isKakaoTalkInstalled()) {
try {
await UserApi.instance.loginWithKakaoTalk();
print('카카오톡으로 로그인 성공');
} catch (error) {
print('카카오톡으로 로그인 실패 $error');
// 사용자가 카카오톡 설치 후 디바이스 권한 요청 화면에서 로그인을 취소한 경우,
// 의도적인 로그인 취소로 보고 카카오계정으로 로그인 시도 없이 로그인 취소로 처리 (예: 뒤로 가기)
if (error is PlatformException && error.code == 'CANCELED') {
return;
}
// 카카오톡에 연결된 카카오계정이 없는 경우, 카카오계정으로 로그인
try {
await UserApi.instance.loginWithKakaoAccount();
print('카카오계정으로 로그인 성공');
} catch (error) {
print('카카오계정으로 로그인 실패 $error');
}
}
} else {
try {
await UserApi.instance.loginWithKakaoAccount();
print('카카오계정으로 로그인 성공');
} catch (error) {
print('카카오계정으로 로그인 실패 $error');
}
}
카카오톡으로 로그인은 잘 되는데, 안드로이드에서 카카오 계정으로 로그인 시 아무런 반응이 없습니다.
ios에서는 카카오톡으로 로그인과 카카오 계정으로 로그인 모두 잘 진행되었습니다.
답변 부탁드립니다.
tim.l
10월 26, 2022, 5:31오전
2
안녕하세요.
계정으로 로그인 시 아무런 반응이 없다는 것이 버튼 클릭 이벤트 조차 발생하지 않는다는 의미인가요?
관련 로그와 화면 캡쳐 부탁드립니다.
추가로, 앱ID 알려주시면 카카오측 로그도 확인해보겠습니다.
카카오계정이 없어 카카오 계정으로 로그인 하는 웹뷰는 잘 떴고, 카카오 계정으로 로그인 후 웹뷰가 닫히고 저희 앱 화면으로 돌아오는 것 까지 동작합니다.
그런데 response인 OAuth 가 아무것도 오지 않고, ‘카카오계정으로 로그인 성공’ 이나 ‘카카오 계정으로 로그인 실패’ 와 같은 로그도 아무것도 찍히지 않습니다.
앱 id 는 512927 입니다.
tim.l
10월 26, 2022, 6:51오전
4
로그를보니 아래와 같이 성공이력이 있습니다. 카카오측 로그상 문제 없어보이는데요.
어떤 상황인지 재현을 위해 작성하신 코드블럭 공유 부탁드려요.
Oct 26, 2022 @ 15:07:40.433 iOS에서 인가요청
Oct 26, 2022 @ 15:07:40.693 토큰발급
Oct 26, 2022 @ 15:07:40.925 사용자정보조회
Future<void> loginWithKakaoTest() async {
try {
late OAuthToken loginResult;
if (await isKakaoTalkInstalled()) { // 카카오톡 실행이 가능하면 카카오톡으로 로그인, 아니면 카카오계정으로 로그인
try {
loginResult = await UserApi.instance.loginWithKakaoTalk();
print('카카오톡 로그인 성공, ${loginResult.toString()}');
} catch (error) {
// 사용자가 카카오톡 설치 후 디바이스 권한 요청 화면에서 로그인을 취소한 경우,
// 의도적인 로그인 취소로 보고 카카오계정으로 로그인 시도 없이 로그인 취소로 처리 (예: 뒤로 가기)
if (error is PlatformException && error.code == 'CANCELED') {
return;
}
// 카카오톡에 연결된 카카오계정이 없는 경우, 카카오계정으로 로그인
try {
loginResult = await UserApi.instance.loginWithKakaoAccount();
print('카카오 계정 로그인 성공, ${loginResult.toString()}');
} catch (error) {
print('카카오 계정 로그인 실패, ${error.toString()}');
rethrow;
}
}
} else {
loginResult = await UserApi.instance.loginWithKakaoAccount();
print('카카오 계정 로그인 성공, ${loginResult.toString()}');
}
} catch (e) {
print('카카오 계정 로그인 실패, ${e.toString()}');
rethrow;
}
}
카카오 로그인 버튼 클릭 시 위의 함수를 호출하도록 하였습니다.
tim.l
10월 26, 2022, 10:30오전
6
로그를 다시보니 Android기기에서 인가요청 이후 토큰요청이 없는것으로 볼때 리다이렉트 설정이 안된것 같은데요.
AndroidManifest.xml 파일에 카카오 로그인 Redirect URI 설정 하셨을까요?
Flutter | Kakao Developers Flutter
say853
10월 27, 2022, 12:25오전
7
네, AndroidManifest.xml 과 플랫폼의 redirect url 모두 아래와 같이 설정하였습니다.
tim.l
10월 27, 2022, 10:19오전
8
<activity
android:name="com.kakao.sdk.flutter.AuthCodeCustomTabsActivity"
android:exported="true">
<intent-filter android:label="flutter_web_auth">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!-- Redirect URI, "kakao${YOUR_NATIVE_APP_KEY}://oauth" 형식 -->
<data android:scheme="kakao${YOUR_NATIVE_APP_KEY}" android:host="oauth"/>
</intent-filter>
</activity>
이렇게 설정해보시겠어요?
1개의 좋아요
say853
10월 28, 2022, 12:51오전
9
아… 제가 다른 액티비티에 설정해 주고 있었네요,
해결했습니다. 감사합니다
1개의 좋아요