Flutter 카카오톡 웹 로그인 구현으로 질문드립니다

어플리케이션 ID 1050747
개발 환경: flutter 3.19.3

flutter에서 카카오 로그인 진행하고 인증을 하면
인가 코드를 spring boot 서버로 리다이렉션 시켜서
서버에서 access token을 받고 회원가입을 구현하려고 하는 중입니다.

그래서 일단 웹에서 계정인증으로 테스트 해보려고 developers 문서 참고해
kakao flutter sdk javascript key로 초기화 하고 다음과 같이 코드를 작성했는데요.

  void _callAPI() async {
    try {
      var response = await AuthCodeClient.instance.authorize(
        redirectUri: 'http://localhost:8080/login/oauth2/code/kakao',
      );
      print(response);
    } catch (error) {
      print('카카오톡으로 로그인 실패 $error');
    }
  }

저 메서드를 호출하면
KakaoClientException unknown: OAuth 2.0 redirect uri was null, which should not happen
이런 오류가 반환됩니다.

  final redirectUriWithParams = await _methodChannel.invokeMethod<String>(
      CommonConstants.launchBrowserTab, args);

  if (redirectUriWithParams != null) return redirectUriWithParams;
  throw KakaoClientException(
    ClientErrorCause.unknown,
    "OAuth 2.0 redirect uri was null, which should not happen.",
  );

코드 따라가 보니까 저 부분에서 오류가 나는 것 같은데 뭐가 문제일까요?
메서드 호출하면 카카오 로그인 화면에서 로그인 진행 전에 바로 오류부터 반환되요.

{url: 카카오계정?
client_id=529540eb153fa80c33ac0fea3a763257
&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2Flogin%2Foauth2%2Fcode%2Fkakao
&response_type=code
&ka=sdk%2F1.9.1+sdk_type%2Fflutter+os%2Fjavascript+origin%2Fhttp%3A%2F%2Flocalhost%3A59596
, redirect_uri: http://localhost:8080/login/oauth2/code/kakao
, is_popup: false}

args는 출력해보니까 이렇게 나오네요.

안녕하세요.

아래 초기화 코드가 구현되어 있으실까요?

// 웹 환경에서 카카오 로그인을 정상적으로 완료하려면 runApp() 호출 전 아래 메서드 호출 필요
WidgetsFlutterBinding.ensureInitialized();

시작하기 | Kakao Developers 시작하기 - 초기화

void main() {

  // 웹 환경에서 카카오 로그인을 정상적으로 완료하려면 runApp() 호출 전 아래 메서드 호출 필요
  WidgetsFlutterBinding.ensureInitialized();

  // runApp() 호출 전 Flutter SDK 초기화
  KakaoSdk.init(
    nativeAppKey: '8826eec5f744658162616455cf5361ad',
    javaScriptAppKey: '529540eb153fa80c33ac0fea3a763257',
  );

  runApp(const MyApp());
}


네 main() 내부에 작성해뒀어요

재현 가능한 URL 있을까요?
제공해 주신 정보와는 달리 동작하는 것 같습니다.

다시 시도해보니까 또 되네요? 이유는 모르겠는데 뭔가 코드를 잘못 작성했었나 봐요.
그런데 지금은 또다른 문제를 마주쳤는데 로그인을 하고 나니 계속 KOE006 에러가 떠요.
지금 서버쪽은 spring security oauth2가 제공하는 기능으로 로그인 구현하고 있는데
flutter sdk가 안돼서 WebView로 접근해서 로그인 했을 때는 정상적으로 실행이 됐었어요.
그런데 같은 주소로 sdk로 호출하니까 등록되지 않은 uri로 나오는데 아무리 봐도 문제가 없더라고요.
받는 쪽 서버가 문제여도 저 에러가 나올 수 있나요?

KOE006 오류는 디벨로퍼스 앱에 등록되지 않은 redirect_uri 파라미터가 사용되는 경우 발생합니다.

아래 등록되지 않은 redirect_uri 파라미터가 사용되었는데요 참고 부탁드립니다.

http://119.56.169.16:8080/login/oauth2/code/kakao