안녕하세요 카카오 로그인 플로우 관련 질문이 있습니다. 앱 환경에서 질문이 있는데요.
우선 웹 환경에서 카카오 로그인을 진행할 경우 백엔드와 프론트엔드 중 백엔드가 모든 책임을 가지고 진행하는 것이 맞다고 알고 있습니다. 인가 코드나 엑세스 토큰을 프론트엔드에서 발급받은 후 백엔드로 넘기는 과정에 있어서 탈취당할 위험이 있기 때문에 백엔드에서 redirect_uri에 사용할 API를 만들어서 내부적으로 모든 과정이 진행되도록 하는 것이 좋다고 알고 있습니다.
앱 환경 같은 경우에는 웹뷰로 넘겨서 웹과 같이 진행을 하거나 앱에서 제공하는 SDK를 쓰는 방법이 있을 것 같습니다.
프론트엔드에 대한 지식이 많지는 않아 잘 모르지만 웹뷰로 넘겨서 진행할 경우에는 사용자의 사용성을 해칠 수도 있고 SDK를 쓰는 것이 더 권장된다고 알고 있습니다.
다만 SDK를 사용할 시 AccessToken을 발급받는 과정까지 한 번에 진행되는 것으로 알고 있는데 여기서 백엔드고 AccesToken을 넘기는 과정이 있다면 이 또한 토큰을 탈취당할 위험이 있다고 생각됩니다. 그렇기 때문에 소셜 로그인을 통해 가입할 때 필요한 정보들을 프론트엔드에서 받아온 후 그 정보만을 백엔드로 넘기는 방법이 권장된다는 글을 본 적이 있는데요.
제가 궁금한 것은 받아오는 사용자의 정보 중 바뀌지 않고 고유한 값을 가지는 것은 id에 해당하는 ‘회원 번호’ 밖에 없는 것 같은데 해당 내용만을 프론트엔드가 백엔드로 넘겨서 자체 서비스 토큰을 발급하는 과정이 권장되는 것이 맞는지입니다. 제가 제대로 이해한 것이 맞다면 회원 번호만을 통해 유저를 구분하고 자체 서비스 토큰을 발급하는 과정 또한 회원 번호를 탈취당하면 보안에 위험이 있을 것 같은데, 해당 문제를 처리할 수 있는 방법이 무엇이 있을까요?