다음은 Flutter iOS 앱에서 Kakao 로그인 구현 시 발생할 수 있는 트러블슈팅 항목들과 각각의 해결 방법을 정리한 내용.
현상
AuthApi.instance.hasToken()은 true인데도 UserApi.instance.me() 호출 시 매번 인증 화면이 뜨거나 에러원인
hasToken()은 단순히 로컬에 토큰이 존재함을 의미할 뿐, 유효성은 검증하지 않음해결
void tryAutoLogin() async {
if (await AuthApi.instance.hasToken()) {
try {
final user = await UserApi.instance.me();
// 자동 로그인 성공
} catch (e) {
// 자동 로그인 실패 → 수동 로그인 유도
await UserApi.instance.loginWithKakaoAccount();
}
}
}
me() 호출을 통해 토큰 유효성 확인 → 실패 시 로그인 시도현상
카카오 로그인 시 아래와 같은 iOS 기본 팝업이 표시됨:
‘앱이 kakao.com을 사용하여 로그인하려고 합니다’
원인
해결
현상
users 컬렉션에 해당 유저 정보가 없음원인
해결
동의 항목 설정 확인: Kakao Developers > 내 애플리케이션 > 동의 항목
프로필, 이메일, 카카오 계정 ID 등 사용자 동의 필요null-safe 처리 후 Firestore에 직접 저장:
final nickname = kakaoAccount?.profile?.nickname ?? 'NoName';
final email = kakaoAccount?.email ?? 'unknown@email.com';
// ...
await _firestore.collection('users').doc(userId).set(userModel.toJson(), SetOptions(merge: true));