플러터 - 스프링 카카오 로그인 구현방법

플러터는 웹뷰가 아니라 네이티브 방식을 사용중입니다.
카카오 로그인을 하면 받아올 수 있는 회원정보를 바탕으로 현재 개발중인 서비스에서 회원가입을 시키고 JWT토큰을 발급해주는 형태로 구현을 해야해서 백엔드에서 처리가 필요합니다.
많이 사용하는 방식을 참고해서 플러터에서 인가코드를 받고 인가코드를 스프링서버에 요청하면 이후 인증 과정과 회원가입, jwt발급을 해주도록 스프링을 구현해두었는데요.

    @GetMapping("/oauth/{provider}")
    public ResponseEntity<ResultResponse> loginOauth(@PathVariable String provider,@RequestParam String code){
        TokenDTO tokenDTO = oAuth2MemberService.loginOauth(provider,code);
        return ResponseEntity.ok(ResultResponse.of(LOGIN_SUCCESS,tokenDTO));
    }

플러터에서 AuthCodeClient.instance.authorize()를 통해 요청하면 jwt토큰이 플러터 앱으로 응답이 가는게 아니라, 카카오 로그인을 위해 뜬 웹뷰에 응답이 갑니다.
플러터에서 인가코드만 받아올 수 있는 방법이나, 다른 방법이 있나요?

카카오와 통신하는 과정을 플러터가 모두 처리하고 받아온 회원정보를 백엔드에 넘겨서 회원가입 시키는 방법도 있다고 들었는데, 소셜로그인은 따로 비밀번호가 없는데 이 방식으로 하면 사실상 카카오 로그인을 안하고 회원정보만 바로 백엔드에 넘겨도 jwt를 응답해주는거라 로그인이라고 할 수 없을것같아서 질문드립니다.

플러터에서 인가코드만 받아올 수 있는 방법이나, 다른 방법이 있나요?

플러터 네이티브 방식은 인가코드요청과 액세스토큰발급을 한번에 처리합니다. (loginWithKakaoTalk(),loginWithKakaoAccount())

인가 코드를 받으시려면 REST-API방식로그인을 사용하셔야하고
여타 소셜로그인과 동일하게 카카오 로그인도 OAuth2 방식으로 제공되므로 카카오측 로그인 이후, 개발하신 리다이렉트URI로 302 리다이렉트 처리를 위해 웹뷰를 사용하셔야합니다.

카카오와 통신하는 과정을 플러터가 모두 처리하고 받아온 회원정보를 백엔드에 넘겨서 회원가입 시키는 방법도 있다고 들었는데, 소셜로그인은 따로 비밀번호가 없는데 이 방식으로 하면 사실상 카카오 로그인을 안하고 회원정보만 바로 백엔드에 넘겨도 jwt를 응답해주는거라 로그인이라고 할 수 없을것같아서 질문드립니다.

네이티브 앱 서비스 구축하신다면 카카오와 교신은 플러터 SDK가 하고 회원가입 처리 또는 로그인 처리는 보안 처리를 강화하셔서 백엔드와 교신하면 좋을 것같습니다.

참고 Proof Key for Code Exchange by OAuth Public Clients

await AuthCodeClient.instance.authorize(
    redirectUri: '${REDIRECT_URI(백엔드 loginOauth 호출)}',
  );

웹뷰로 카카오 로그인 페이지가 뜨고, 로그인하면 웹뷰페이지는 닫히고 앱으로 백엔드 응답이 가는걸 기대했는데, 위의 코드로 진행하니까 로그인하면 웹뷰페이지가 안닫히고 응답 json이 웹뷰페이지에 그대로 뜨더라구요…

그래서 AuthCodeClient.instance.authorize() 이런식으로? redirect url적지않고 함수를 바로 호출해서 값을 받고 백엔드에 넘겨줬는데, 이렇게하니까 인가코드가 잘못됐거나 이미 사용한 코드라고 에러가 뜨던데 이건 잘못된 방법인가요?

Flutter | Kakao Developers Flutter

Redirect 방식은 웹 서비스에서 사용하는 방식으로 '네이티브 앱 서비스에서는 사용 불가’합니다.
인가코드를 백엔드로 전달하려면 자체적으로 웹뷰를 띄우시고 REST-API방식로그인처리 후, 닫으셔야하구요.

위에서 안내드린것처럼
네이티브 앱 서비스 구축하신다면 카카오와 교신은 플러터 SDK가 하고 백엔드에서는 회원가입 처리하는 것을 추천드립니다. '카카오 로그인을 안하고 회원정보만 바로 백엔드에 넘겨’가입할 수 없도록 전후 코드 체크 하는 방식 검토 부탁드려요.