카카오 로그인 오류 관련 문의

안녕하세요. 플러터로 앱 개발 중에 문의사항이 있어 글을 작성합니다.
카카오톡 로그인을 구현하였는데, 에뮬레이터에서는 잘 실행이 되는데, 기기에 연결하거나 플레이스토어에서 다운로드해서 사용하면 로그인 화면으로도 넘어가지 않습니다. 혹시 어떻게 해결하면 될까요???

#index.js

// Kakao Login API
const functions = require("firebase-functions");
const admin = require("firebase-admin");

var serviceAccount = require("./withboard-6fa32-firebas*******************************.json");

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: "https://***********************.firebaseio.com"
});

exports.createCustomToken = functions.https.onRequest(async (request, response) => {
  try {
    const user = request.body;
    console.log("Received user data: ", user);

    const uid = `kakao:${user.uid}`;
    const updateParams = {
      email: user.email,
      displayName: user.displayName,
    };

    try {
      await admin.auth().updateUser(uid, updateParams);
    } catch (e) {
      updateParams["uid"] = uid;
      await admin.auth().createUser(updateParams);
    }

    const token = await admin.auth().createCustomToken(uid);

    response.send(token);
  } catch (error) {
      console.error("Error while executing function: ", error);
      response.status(500).send("Internal Server Error");
  }
});

#kakaosignin.dart

import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:kakao_flutter_sdk_user/kakao_flutter_sdk_user.dart';
import 'auth/social_login.dart';

class KakaoLogin implements SocialLogin {
  @override
  Future<bool> login() async {
    try {
      bool isInstalled = await isKakaoTalkInstalled();
      if (isInstalled) {
        try {
          await UserApi.instance.loginWithKakaoTalk();
          User user = await UserApi.instance.me();
          final FirebaseFirestore _firestore = FirebaseFirestore.instance;
          final CollectionReference _users = _firestore.collection('users');
          await _users.doc("kakao:${user.id}").set({
            'email': user.kakaoAccount!.email,
            'name': user.kakaoAccount!.profile!.nickname,
          });

          return true;
        } catch (e) {
          return false;
        }
      } else {
        try {
          await UserApi.instance.loginWithKakaoAccount();
          print(await KakaoSdk.origin);
          User user = await UserApi.instance.me();
          final FirebaseFirestore _firestore = FirebaseFirestore.instance;
          final CollectionReference _users = _firestore.collection('users');
          await _users.doc("kakao:${user.id}").set({
            'email': user.kakaoAccount!.email,
            'name': user.kakaoAccount!.profile!.nickname,
          });
          return true;
        } catch (e) {
          print(await KakaoSdk.origin);
          return false;
        }
      }
    } catch (e) {
      return false;
    }
  }

  @override
  Future<bool> logout() async {
    try {
      await UserApi.instance.logout();
      return true;
    } catch (error) {
      return false;
    }
  }
}

앱 ID 948294

안녕하세요.

현재도 동일증상 있으실까요?
등록되지 않은 키 해시 값이 존재하여 KOE009 오류가 발생하였으나 현재 조치 되신것으로 확인됩니다.

확인 결과, 카카오톡 앱이 존재하는 경우에는 로그인 기능이 되지 않는 것으로 확인되었습니다.
카톡 앱을 지우고 로그인 실행했을 때에는 기능이 정상적으로 동작하네요.

하이브리드 환경에서 앱에서 톡 실행이 불가한 경우 아래 가이드를 참고 부탁드립니다.

Kakao Developers

가이드에서 안내하는 설정이 되어 있으신지 확인 부탁드립니다.

디버깅 결과, PlatformException을 확인하였습니다. 앱이 설치되어 있으나, 로그인하지 않은 경우에 발생하는 오류로 확인해서 예외처리하여 loginWithKakaoAccount()가 실행되도록 하였습니다. 감사합니다.

1개의 좋아요