카카오톡 로그인 오류 및 카카오계정으로 로그인 하고 계속하기 버튼이 반응이 없습니다

=

developers ID = 1123048
SDK version = ^1.9.5

카카오로 로그인 구현하는데, 카카오톡으로 로그인할 때는 아래와 같은 오류 글이 뜨면서,

I/flutter (13293): 카카오톡으로 로그인 실패 {error: misconfigured, error_description: invalid android_key_hash or ios_bundle_id or web_site_url}

동시에 웹사이트로 전환되어 카카오계정으로 로그인 할 때는 아래 사진처럼 계속하기 버튼이 무반응입니다.

=

  • AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android">

    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:label="마이부산로그"
        android:name="${applicationName}"
        android:icon="@mipmap/appicon"
        android:usesCleartextTraffic="true">

        <activity
            android:name="com.kakao.sdk.auth.AuthCodeHandlerActivity"
            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" />

                <data android:scheme="kakao3cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" android:host="oauth"/>
            </intent-filter>
        </activity>

    </application>

</manifest>

=

  • main.dart 속 SDK 초기화
void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  KakaoSdk.init(
    nativeAppKey: '3cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    // javaScriptAppKey: 'e0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
  );

  runApp(MyApp());
}

=

  • login_opening_screen.dart 속 카카오 로그인 구현 로직
Future<void> signInWithKakao() async {
    setState(() {
      _isLoadingKakao = true; // 로딩 시작
    });

    try {
      // 카카오톡이 설치되어 있는지 확인 후, 카카오톡으로 로그인 시도
      if (await kko.isKakaoTalkInstalled()) {
        try {
          await kko.UserApi.instance.loginWithKakaoTalk();
          print('카카오톡으로 로그인 성공');
        } catch (error) {
          print('카카오톡으로 로그인 실패 $error');
          // 카카오톡 로그인 실패 시, 카카오 계정으로 로그인 시도
          await kko.UserApi.instance.loginWithKakaoAccount();
          print('카카오 계정으로 로그인 성공');
        }
      } else {
        // 카카오톡이 설치되어 있지 않은 경우, 카카오 계정으로 로그인 시도
        await kko.UserApi.instance.loginWithKakaoAccount();
        print('카카오 계정으로 로그인 성공');
      }

      // 로그인 후 사용자 정보 가져오기
      kko.User? kakaoUser = await kko.UserApi.instance.me();
      String? email = kakaoUser.kakaoAccount?.email ?? '';

      // 유저 정보를 바탕으로 User 객체를 생성
      u.User user = u.User(
        u_email: email,
        u_name: kakaoUser.kakaoAccount?.name ?? '',
        u_img_url: kakaoUser.kakaoAccount?.profile?.profileImageUrl ?? '',
        u_nick: kakaoUser.kakaoAccount?.profile?.nickname ?? '',
        // 기타 필드들 초기화
      );

      // UserModel 프로바이더를 사용하여 데이터베이스에 유저가 존재하는지 확인
      UserModel userModel = Provider.of<UserModel>(context, listen: false);
      bool userExists = await userModel.checkUserExists(email: email);

      if (userExists) {
        // 유저가 이미 존재하면 로그인 함수 호출
        await userModel.kakaoLoginUser(user: user);
      } else {
        // 유저가 존재하지 않으면 등록 함수 호출
        await userModel.kakaoRegisterUser();
      }

      // 로그인 성공 시, 팝업 닫기 및 메인 페이지로 이동
      Navigator.of(context).pop();  // 팝업 닫기
      Navigator.of(context).pushReplacement(
        MaterialPageRoute(builder: (context) => RootScreen()),
      );

    } catch (error) {
      print('카카오 로그인 실패 $error');
      ScaffoldMessenger.of(context).showSnackBar(
        SnackBar(
          content: Text('카카오 로그인에 실패했습니다.'),
        ),
      );
    } finally {
      setState(() {
        _isLoadingKakao = false; // 로딩 종료
      });
    }
  }

{error: misconfigured, error_description: invalid android_key_hash or ios_bundle_id or web_site_url}

키해시 불일치 에러입니다.
로깅하셔서 개발하신 앱에서 카카오로 전달하는 키해시와 디벨로퍼스앱에 설정된 키해시 비교해주세요.

print(await KakaoSdk.origin);

안녕하세요

위에 tim.l이 말씀해주신 것처럼 키 해시로 인해 에러가 발생한 것으로 보이는데요, 첨부해주신 AndroidManifest.xml 파일을 확인해보니 키 해시 이슈를 수정해도 로그인이 정상적으로 되지 않는 이슈가 있을 것 같아요

AndroidManifest.xml 파일에 등록하신 com.kakao.sdk.auth.AuthCodeHandlerActivity 는 안드로이드용 카카오SDK에서 사용하는 클래스이고, 플러터용 카카오SDK에서는 com.kakao.sdk.flutter.AuthCodeCustomTabsActivity 를 등록해야합니다.

자세한 내용은 가이드 참고 부탁드리겠습니다.

1개의 좋아요

키해시가 안 본 새 바뀌어 있더라구요 ㅠㅠ 새로 바뀐 키해시로 등록하니 다시 정상작동 됩니다.
알려주셔서 정말 감사합니다 ㅠㅠㅠㅠㅠ

1개의 좋아요

알려주신대로 키 해시 문제 였습니다 ㅠㅠ 감사합니다 ㅠ

1개의 좋아요