궁금한점.
리다이렉트 방식(AuthCodeClient.instance.authorize) 을 써서 서버에 인가코드 오는것, 서버에서 토큰을 통한 정보까지 확인 완료 됐습니다.
그런데, account 로그인 시에 웹뷰? 팝업이 사라지지 않고 있습니다.
원래 사라지지 않는걸까요? 아니면 인가코드 받은 서버에서 어떤 특정한 값을 리턴해줘야 하는건가요…?(또는 iOS plist 에서 스키마 문제? 이건 해놨습니다 ㅠ)
rest api 키를 사용해서 테스트 구현 했습니다.
Redirect 방식은 웹 서비스 환경에서 사용되는 기능입니니다.
아쉽지만, 네이티브 환경에서 redirect_uri 처리 후, 앱으로 다시 돌아오는 기능은 제공하고 있지 않습니다.
일반적인 로그인 방식을 사용한 뒤, 서비스측을 호출하는 방식으로 개발하셔야 할것 같습니다.
이후, flutter 앱 개발에서 카카오로그인시 뜬 웹브라우저가 access_token을 출력하고,
사라지지 않는 상태에서 flutter 앱으로 access_token이 연계되지 않습니다.
그렇다면, AuthCodeClient.instance.authorizeWithTalk 혹은 AuthCodeClient.instance.authorize는 웹에서만 동작하는 것이라면, 앱에서는 어떨때 사용하는거죠?
앱에서는 redirect 방식은 사용할 수 없고, NestJS + Flutter 카카오 OAuth 로그인 구현하기 이와 같은 방식으로만 사용해야 하는 것인가요?
flutter 앱에서 카카오 로그인 이후, 서비스 서버가 발행하는 토큰을 사용하고 싶은데, 도움 부탁드려요.
그렇다면, AuthCodeClient.instance.authorizeWithTalk 혹은 AuthCodeClient.instance.authorize 는 웹에서만 동작하는 것이라면, 앱에서는 어떨때 사용하는거죠?
웹 방식으로 처리하실때는 기재하신 함수를 사용하여 인가코드 요청하고 설정한 리다이렉트 URI로 http 리다이렉트 처리합니다.
네이티브 앱 방식일때는 아래 가이드와 같이 loginWithKakaoTalk(), loginWithKakaoAccount() 함수 사용하여 직접 리다이렉트 URI 구현하지 않고 SDK통해 앱으로 리다이렉트 받아 SDK 내 토큰 발급 처리까지 진행합니다. 발급 받은 토큰은 앱내 static변수에 할당됩니다.
카카오 로그인은 여타 소셜 로그인과 동일하게 OAuth2 표준 스펙으로 동작하여 인가 요청 후, http 리다이렉트를 하게됩니다.
그러므로 네이티브앱에서 redirect 방식을 사용하시려면 앱내 별도 웹뷰를 띄워 구현하시거나
블로그 참조 링크 기재하신 방식처럼 앱으로 리다이렉트 받아 처리 하는 방식을 사용하셔야합니다.
네이티브앱 구현 시, 웹뷰를 띄워 구현하시는 것 보다는 SDK통해 토큰 받는 것을 추천드리며
블로그 내용 처럼 액세스 토큰을 백엔드로 전달하는 것 보다는
카카오와 교신은 플러터에 일임하여 SDK통해 간편하게 조회 하시고
조회된 결과를 백엔드에 전달하시는 것을 추천합니다.
네이티브앱내에서 일반회원 가입 한 것처럼
(1) `loginWithKakaoTalk() 카카오톡으로 간편 로그인 하여 토큰 발급
(2) me() 함수 호출하여 사용자 정보조회
(3) 백엔드로 조회된 정보 전달