문의 시 사용하시는 SDK 버전 정보와 플랫폼(Android / iOS) 및 디벨로퍼스 앱ID를 알려주세요.
앱 ID : 1231434
SDK 버전 : kakao_flutter_sdk: 1.9.7+3
플랫폼 : Android / IOS
카카오 로그인을 하기위한 페이지
어플에서 카카오 로그인 시도 화면입니다
카카오 로그인 시도 → 동의 화면 → 2단계 인증(네, 로그인 할래요.) → 앱으로 돌아옴 → 무반응
확인한 바로는
- 구글 플레이, 앱스토어에 올라간 앱들이 반응이 없는걸로 나타납니다
- 카카오 2단계 인증이 걸려있는 계정에서 나타나는걸로 예상됩니다.
2단계 인증이 없는 계정은 정상작동하는 것으로 확인되고 있으며 2단계 인증 관련한 프로세스나 리턴값을 확인하고 싶습니다.
Future kakaoLogin() async {
try {
bool isInstalled = await isKakaoTalkInstalled();
OAuthToken token;
appLog('[카카오 로그인 시작]');
appLog(' 카카오톡 설치 여부: $isInstalled');
if (isInstalled) {
try {
token = await UserApi.instance.loginWithKakaoTalk();
appLog('[1][카카오톡 로그인 성공]');
} catch (e, s) {
// 카카오톡으로 로그인 실패 → 카카오 계정으로 재시도
appLog(' 카카오톡 로그인 실패: $e');
appLog(' StackTrace: $s');
appLog(' 웹뷰 로그인으로 대체 시도');
token = await UserApi.instance.loginWithKakaoAccount();
appLog('[✅ 웹뷰 로그인 성공. 액세스 토큰: ${token.accessToken}]');
}
} else {
// 앱이 없으면 계정 로그인
appLog('[⚠️ 카카오톡 미설치. 웹뷰 로그인 진행]');
token = await UserApi.instance.loginWithKakaoAccount();
appLog('[✅ 웹뷰 로그인 성공. 액세스 토큰: ${token.accessToken}]');
}
// 사용자 정보 가져오기
final user = await UserApi.instance.me();
appLog('[2]로그인 성공! 응답 내용:');
appLog('토큰: ${token.accessToken}');
appLog('사용자 ID: ${user.id}');
appLog('이메일: ${user.kakaoAccount?.email}');
appLog('이름: ${user.kakaoAccount?.name}');
appLog('닉네임: ${user.kakaoAccount?.profile?.nickname}');
String? email = user.kakaoAccount?.email ?? '';
String? nickname = user.kakaoAccount?.profile?.nickname;
String? name = user.kakaoAccount?.name;
String esntlId = user.id.toString();
if (email.isEmpty) {
appLog('카카오 계정에 이메일이 등록되지 않아 로그인(회원가입)할 수 없어 리턴 !!!!!');
DialogUtil.showInfoDialog(context, '카카오 계정에 이메일이 등록되지 않아 로그인(회원가입)할 수 없습니다.');
return;
}
await context.read<loginStore>().snsLoginUser(
context,
email,
esntlId,
nickname,
'kakao',
);
} catch (e, s) {
await UserApi.instance.unlink(); // 회원가입을 하지않고 취소하면 연결을 끊음
if (e is PlatformException) {
appLog('❌ PlatformException 발생');
appLog('🔹 code: ${e.code}');
appLog('🔹 message: ${e.message}');
appLog('🔹 details: ${e.details}');
} else {
appLog('❌ 예외 발생: ${e.runtimeType} - $e');
}
appLog('[catchError] StackTrace:\n$s');
DialogUtil.showInfoDialog(context, '죄송합니다. 예상치못한 에러로 카카오 로그인에 실패하였습니다.');
}
}
코드는 이렇게 작성하여 사용중입니다.

