문의 시, 사용하시는 SDK 버전 정보와 디벨로퍼스 앱ID를 알려주세요.
안녕하세요! 카카오 계정을 서비스와 연동할 때 처음 연동하는지 혹은 기존에 연동되어 있는지에 대한 여부를 알 수 있는 API가 따로 있을까요?
문의 시, 사용하시는 SDK 버전 정보와 디벨로퍼스 앱ID를 알려주세요.
안녕하세요! 카카오 계정을 서비스와 연동할 때 처음 연동하는지 혹은 기존에 연동되어 있는지에 대한 여부를 알 수 있는 API가 따로 있을까요?
안녕하세요.
유저가 사이트에 접근했을때 처음 연동하는지 혹은 기존에 연동했는지 카카오를 통해 알려면 카카오로그인을 하는 수밖에 없고
카카오 로그인을 하는 시점에 최초 연동이라면 동의창이 표시됩니다. (조회하는 시점에는 항상 기존 연동 이용자겠지요.)
즉, 유저를 특정해서 카카오 API 호출하려면 액세스 토큰이 있어야하므로 절차상 로그인 이후에 처음연동인지 체크하는 것이 성립하지 않습니다.
카카오와 무관하게 해당유저의 기기에 앱유저ID를 보관 하신다면 카카오 로그인 없이도 처음연동인지 판단할 수 있겠지만,
어떤 목적으로 해당 API를 사용하시려는 것인지 부연설명 해주시겠어요?
서비스 자체적으로 사용자 DB를 갖고 있어서 서비스에 처음 연동하는 사용자의 경우와 기존에 연동된 사용자를 구분해서 API(signIn, signup)을 호출해야하는 상황입니다.
혹시 카카오 인증 단계에서 혹시 서비스 연동 여부에 대해 판단할 수 있는 API가 존재하는지 궁금해서 말씀드렸습니다!
그렇다면, 카카오 계정과 서비스 자체 사용자 DB간의 연동 정보는 이미 보유하고 계시므로
카카오 로그인의 인가코드 받기를 promp=none 파라메터 설정하여 기존 연결된 유저인지 체크하시면 좋을 것같습니다.
인가코드요청 파라메터 REST API | Kakao Developers REST API
톡에서 자동로그인하기로 안내하고 있으나 일반 웹에서도 사용 가능하며
promp=none 파라메터 설정하여 인가코드 요청하면 동의창 띄우지 않고
(1) 이미 카카오 로그인으로 연결된 유저라면 리다이렉트 URI로 인가코드 전달하고
(2) 연결안된 유저라면 에러를 전달합니다.
${REDIRECT_URI}?error=consent_required&error_description=user%20consent%20required.
카카오톡에서 자동 로그인 REST API | Kakao Developers REST API
설정된 리다이렉트 URI로 인가코드가 왔다면 사용자 정보조회해서 서비스 자체DB 등록회원인지 판단하고
리다이렉트 URI로 에러가 왔다면 그에 맞는 다른 처리 하시면 될 것같습니다.
JavaScript SDK를 사용하는 경우에는 위와 같은 방법이 있을까요??
현재는 아쉽지만, ‘카카오톡에서 자동 로그인’ 컨셉으로 제공하는터라 JavaScript SDK 는 톡내 인앱브라우저에서만 promp=none 사용 가능한데요.
JavaScript SDK의 authorize 함수 호출과 동일하게 파라메터 설정하여 아래와 같이 호출하시면 됩니다.
https://kauth.kakao.com/oauth/authorize?
response_type=code&client_id=${REST_API_KEY}&redirect_uri=${REDIRECT_URI}&prompt=none