kakao_flutter_sdk: ^1.5.0 / 플러터 iOS + Android 이용중입니다.
네이티브앱 환경에서 loginWithKakaoTalk 및 loginWithKakaoAccount를 이용해 프론트에서 카카오 토큰 발급 및 이름, 생년월일 등을 입력받아 회원정보 수집까지 처리하려고 합니다. 여기까지는 문제가 없는데 이 정보로 백엔드를 통해 로그인 / 회원가입을 처리하는 과정에 의문이 있어 문의드립니다. 백엔드는 파이썬 FastApi를 쓰고 있습니다.
현재 개발중인 서비스에서는
회원가입의 경우 [카카오 로그인 → 토큰을 발급받아서 UserApi.instance.me()를 통해 회원 정보 요청 → 백엔드에 유저의 id를 조회 → 가입되지 않은 이용자인 경우 받아온 회원 정보에 더해 몇가지 필요한 정보를 입력받음 → 회원가입에 필요한 정보들을 백엔드로 보내 회원 등록 후 jwt token 발급 → 이후 서비스에 jwt token 사용]
로그인의 경우 [카카오 로그인 → 토큰을 발급받아서 UserApi.instance.me()를 통해 회원 정보 요청 → 백엔드에 유저의 id를 조회 → 가입된 이용자인 경우 jwt token 발급]
방식으로 구현되어 있습니다.
그런데 백엔드에 id를 전송해 이미 가입된 회원인지 조회하는 과정에서
- 카카오 토큰까지 함께 백엔드로 보내서 백엔드에서 카카오토큰을 다시 검증하는 방법
- 카카오에서 제공한 유저 ID값만 전송해서 회원 식별
두 가지 방법 중 고민중인데 카카오에서 권장하는 방식이 어떻게 되는지 궁금합니다.
일단은 2번 방식이 더 적절하다고 판단중인데 이렇게 처리할 경우 정상적으로 카카오 로그인을 완료했고, 카카오에서 제공한 정상적인 id라는 것을 백엔드가 어떻게 검증하는것이 좋을지 또한 가능하다면 조언 부탁드립니다.
감사합니다.