Fullter state를 이런 용도로 쓸 수 없는건가요?

문의 시 사용하시는 SDK 버전 정보와 플랫폼(Android / iOS) 및 디벨로퍼스 앱ID를 알려주세요.
__
Flutter SDK
앱아이디 : 906916

아래 코드에 state: “dynamic value” 처럼 파라미티터를 넣어서 로그인 후 다시 콜백을 통해 받으려고 시도하는 중입니다.
state를 넣으면 로그인이 실패하는군요. (다시 제거하면 정상 로그인이 됩니다.)

  1. state를 이런 용도로 쓸 수 없는건가요?
  2. state값에 다른 처리를 해줘야 하나요?
  3. 이런식으로 파람을 로그인 후 받으려면 다른 방식이 있나요 ?
try {
    if (await isKakaoTalkInstalled()) {
      try {
        print('instance.authorizeWithTalk start');
        response = await AuthCodeClient.instance.authorizeWithTalk(
          redirectUri: '$REDIRECT_URI',
          webPopupLogin: popup,
         state: "dynamic value",
        );
        print('instance.authorizeWithTalk = $response');
        //print('authorizeWithTalk $token');
        return true;
      } catch (error) {
        print('카카오톡으로 로그인 실패 $error');
        return false;
      }
    } else {
      try {
        print('instance.authorize start');
        response = await AuthCodeClient.instance.authorize(
          redirectUri: '$REDIRECT_URI',
          webPopupLogin: popup,
          state: "dynamic value",
        );
        print('instance.authorize = $response');
        //print('authorize $token');
        return true;
      } catch (error) {
        print('카카오계정으로 로그인 실패 $error');
        return false;
      }
    }
  } catch (e) {
    return false;
  }
}


안녕하세요.

1, 2:
아쉽지만, Flutter SDK에서 제공되는 카카오 로그인 기능은 state 파라미터를 내부적으로 다른 용도로 사용되기에 사용하실 수 없습니다. (하지만, 보안을 위해 기본적으로 PKCE 스팩으로 동작합니다.(UserApi))

3:
로그인 후, 파라미터를 받는것은 서비스측 redirect_uri로 파라미터를 전달하기 위해서일까요?


다른이야기지만, AuthCodeClientauthorizeWithTalk, authorize 메소드를 직접 호출하기보다는 UserApi.instance.loginWithKakaoTalk()UserApi.instance.loginWithKakaoAccount() 를 호출하는 것을 권장드리고 있습니다.

  1. 네 맞아요. 로그인전에 값을 로그인 후에 redirect url로 받으려고 합니다.
    어떤 방법이 있을까요?

아쉽지만, 쿠키를 활용하시거나 SDK 일부를 수정해야 합니다.
flutter sdk 담당자를 통해 지원될 수 있을 지 자세히 확인해 보도록하겠습니다.