플러터는 웹뷰가 아니라 네이티브 방식을 사용중입니다.
카카오 로그인을 하면 받아올 수 있는 회원정보를 바탕으로 현재 개발중인 서비스에서 회원가입을 시키고 JWT토큰을 발급해주는 형태로 구현을 해야해서 백엔드에서 처리가 필요합니다.
많이 사용하는 방식을 참고해서 플러터에서 인가코드를 받고 인가코드를 스프링서버에 요청하면 이후 인증 과정과 회원가입, jwt발급을 해주도록 스프링을 구현해두었는데요.
플러터에서 AuthCodeClient.instance.authorize()를 통해 요청하면 jwt토큰이 플러터 앱으로 응답이 가는게 아니라, 카카오 로그인을 위해 뜬 웹뷰에 응답이 갑니다.
플러터에서 인가코드만 받아올 수 있는 방법이나, 다른 방법이 있나요?
카카오와 통신하는 과정을 플러터가 모두 처리하고 받아온 회원정보를 백엔드에 넘겨서 회원가입 시키는 방법도 있다고 들었는데, 소셜로그인은 따로 비밀번호가 없는데 이 방식으로 하면 사실상 카카오 로그인을 안하고 회원정보만 바로 백엔드에 넘겨도 jwt를 응답해주는거라 로그인이라고 할 수 없을것같아서 질문드립니다.
플러터 네이티브 방식은 인가코드요청과 액세스토큰발급을 한번에 처리합니다. (loginWithKakaoTalk(),loginWithKakaoAccount())
인가 코드를 받으시려면 REST-API방식로그인을 사용하셔야하고
여타 소셜로그인과 동일하게 카카오 로그인도 OAuth2 방식으로 제공되므로 카카오측 로그인 이후, 개발하신 리다이렉트URI로 302 리다이렉트 처리를 위해 웹뷰를 사용하셔야합니다.
카카오와 통신하는 과정을 플러터가 모두 처리하고 받아온 회원정보를 백엔드에 넘겨서 회원가입 시키는 방법도 있다고 들었는데, 소셜로그인은 따로 비밀번호가 없는데 이 방식으로 하면 사실상 카카오 로그인을 안하고 회원정보만 바로 백엔드에 넘겨도 jwt를 응답해주는거라 로그인이라고 할 수 없을것같아서 질문드립니다.
네이티브 앱 서비스 구축하신다면 카카오와 교신은 플러터 SDK가 하고 회원가입 처리 또는 로그인 처리는 보안 처리를 강화하셔서 백엔드와 교신하면 좋을 것같습니다.