카카오 로그인시 가입이 되어있지 않은경우 동의하고 계속할지 묻는 창이나오고,
가입이 되어있는 경우 그러한 창이 나타나지 않고 바로 로그인이 진행되는 것을 확인하였는데요.
이 로그인 가입 여부를 판단할 수 있는 방법에 대해 궁금합니다.
MeV2Response 의 hasSignedUp() 에는 NONE 값만 나오기에 어디서 구분을 할 수 있는지 꼭 알고싶습니다…
카카오 로그인시 가입이 되어있지 않은경우 동의하고 계속할지 묻는 창이나오고,
가입이 되어있는 경우 그러한 창이 나타나지 않고 바로 로그인이 진행되는 것을 확인하였는데요.
이 로그인 가입 여부를 판단할 수 있는 방법에 대해 궁금합니다.
MeV2Response 의 hasSignedUp() 에는 NONE 값만 나오기에 어디서 구분을 할 수 있는지 꼭 알고싶습니다…
안녕하세요!
우선 카카오 플랫폼에서의 '연결’과 '가입’에 대해서 정리해 볼게요.
일반적으로 새로운 서비스를 이용하려면 '가입’을 해야 합니다.
'가입’을 하면 서비스 데이터베이스에 사용자 정보가 저장되고, 그 서비스를 이용할 수 있게 되죠.
하지만 카카오는 서비스 데이터베이스에 접근하지 않습니다.
그래서 실질적인 '가입’은 카카오가 처리하지 않아요.
대신 카카오 플랫폼에는 '연결’이라는 개념이 있습니다.
각 서비스는 개발자 사이트인 '카카오 디벨로퍼스’를 통해 카카오 플랫폼에 '앱’으로 등록돼 있어요.
카카오 로그인을 하면 사용자 카카오계정이 서비스의 '앱’과 '연결’됩니다.
'연결’은 사용자가 해당 앱에서 카카오 플랫폼 기능들을 사용할 수 있게 해 줍니다.
사용자를 인증하는 로그인을 비롯해 여러 가지 기능들이 있어요.
질문하신 내용을 보면 '연결’을 의미하시는 것 같아요.
연결은 로그인 성공 시 자동으로 이뤄집니다.
처음 로그인했을 때나 연결돼 있지 않은 상태에서 로그인했을 때요.
카카오 로그인 후 자체적으로 서비스 데이터베이스에 회원 정보를 저장해 주셔야 합니다.
실질적인 서비스 '가입’은 이 정보 저장에 해당합니다.
hasSignedUp은 특수한 경우에만 사용되는 값입니다.
‘연결’ 여부는 다음과 같이 파악할 수 있어요.
연결 여부 파악이 필요한 이유를 알려주시면 조금 더 자세히 설명드릴 수 있을 것 같아요.
깔끔하게 용어를 정리해주셔서 정말 감사합니다. 카카오 로그인의 구조에대해 설명을 너무 잘해주셔서 제대로 파악하게되었습니다.
제가 연결여부 파악이 필요한 이유는 아래와같습니다.
위 둘의 로직을 구분하기위해서는 카카오 플랫폼이 저의 앱과 연결이되어있는지 그렇지 않은지에 대해 필요로 하게됩니다. 카카오 로그인 버튼을 눌렀을 때, 저 둘 중 어느 화면으로 넘어가게 할지 구분할 수 있는 값을 어떻게 구할 수 있는지 알고싶습니다.
제가 여러 시도를 했을 때와 검색을 했을 때는 위 둘을 구분할 수 있는 방법을 마땅히 찾지 못하여 질문글을 남기게 되었습니다.
감사합니다.!!
회원 가입 처리를 위해 확인이 필요하신 거라면
서비스 회원 DB에 해당 사용자가 등록되어 있는지를 확인하는 부분이 더 중요합니다.
카카오계정과 서비스 앱의 연결은 따로 조치하지 않으셔도 미연결 상태에서 로그인하면 자동으로 이뤄집니다.
그래서 연결에 대해서는 연결 끊기 후처리 외에는 신경쓰지 않으셔도 무방해요. (문서 가장 아래 내용)
사용자는 카카오 로그인에 성공하면 앱과 연결될 것이고,
연결된 사용자는 사용자 정보 요청이 가능합니다.
한 서비스에서 각 사용자의 id는 고유하기 때문에,
사용자 정보 조회 시 id를 확인해 기존 회원인지 아닌지 확인하신 뒤
기존에 가입한 사용자라면(회원 DB에 id 있음) 카카오 로그인 정보와 기존 회원 정보를 매핑하여 로그인 완료되게 해 주시고,
회원으로 가입한 적 없는 사용자라면 회원 가입 절차를 밟도록 처리해주시면 될 것 같아요.
카카오 로그인 사용자의 정보를 회원 DB에서 식별할 수 있도록 처리하시는 부분이 중요하겠네요!
참고로 id가 가장 권장되는 값이고, 카카오계정 이메일은 사용자가 변경할 수 있기 때문에 식별자로 권장하지 않아요.