카카오 로그인 시 동일 사용자 여부 파악

문의 시, 사용하시는 SDK 버전 정보와 디벨로퍼스 앱ID를 알려주세요.


안녕하십니까? 카카오 로그인 관련 문의드립니다.
카카오톡 로그인 시 이메일 인증이 되지 않은 사용자의 경우 마스킹 된 이메일 정보를 받는 것으로 알고 있습니다.

마스킹 된 이메일 정보는 중복 사례가 발생할 것 같은데, 이를 방지하기 위해 권장되는 동일 사용자 검증 방식이
있을까요?

감사합니다.

안녕하세요. @hyfresh

카카오 로그인에서 전달하는 이메일은 카카오계정 관리페이지에서 대표 이메일 변경으로 언제든 변경될 수 있고
이메일이 마스킹되는 이유는 아래와 같습니다.

이메일 만료 상태는 다른 계정에서 이메일을 사용할 때 입니다.
예를 들어 A계정(test@mail.com)이 있지만, B계정에서 test@mail.com 메일을 사용하게 되면 A 계정의 이메일은 만료 됩니다.

일반적으로 A계정이 사용하고 있는(이미 A가 인증 받은) 이메일을 B계정이 사용할수는 없습니다만, 다음 경우에는 가능합니다.

사용자가 고객센터를 통해 이메일을 변경 (경우에 따라 다름)
다음, 한메일 계정 통합 시, 다른 카카오 계정으로 통합할 때
해당 사용자의 경우 2번 케이스에 의해 다른 계정으로 이메일이 통합 되었으며 원래 계정에서는 만료되었습니다.

추가로 인증되지 않은 이메일을 가진 유저는 이메일을 재 인증 하도록 안내하고 있습니다.

즉, 마스킹된 이메일을 이용자 식별용(동일 사용자 파악용)으로 사용하시면 안되며,
카카오 로그인으로 가입 시,

(1) 앱유저ID로 동일 계정 여부만 파악하시거나
(2) 동일 사용자 파악을 하고자하시면 자체 본인인증을 두거나 카카오 싱크 도입으로 CI 제3자 정보제공동의항목을 두어 기존회원 여부 파악하시면 좋을 것 같습니다.

안녕하세요. 답변 감사합니다.

위 답변 내용을 기반으로 추가적인 문의사항 드립니다.

(1) 앱유저ID로 동일 계정 여부만 파악하시거나
=>위 답변에서 말씀하시는 앱유저ID가 유저의 이메일이 아니라면 어떤것을 말씀하시는 건지 설명 부탁드립니다.

(2) 동일 사용자 파악을 하고자하시면 자체 본인인증을 두거나 카카오 싱크 도입으로 CI 제3자 정보제공동의항목을 두어 기존회원 여부 파악하시면 좋을 것 같습니다.
=> 현재 저희가 ci값이 있는 유저가 있고 없는 유저가 있는데 이로인해 정확한 식별이 어려운 상황입니다. 자동로그인 유저들은 로그인 버튼을 누르는 과정을 거치기 어려울 수가 있는데 로그인을 할 경우가 아닌 일반적인 앱 사용 과정에서의 ci 수집 방안이 있을까요?

추가적으로 위 두가지 방법을 제외한 다른 식별 솔루션이 있다면 제공 부탁드립니다.

감사합니다.

(1) 앱유저ID로 동일 계정 여부만 파악하시거나
=>위 답변에서 말씀하시는 앱유저ID가 유저의 이메일이 아니라면 어떤것을 말씀하시는 건지 설명 부탁드립니다.

/v2/user/me에서 전달하는 id 항목이며, 카카오 로그인에서 계정의 유니크한 식별을 위한 유일한 값입니다.

(2) 동일 사용자 파악을 하고자하시면 자체 본인인증을 두거나 카카오 싱크 도입으로 CI 제3자 정보제공동의항목을 두어 기존회원 여부 파악하시면 좋을 것 같습니다.
=> 현재 저희가 ci값이 있는 유저가 있고 없는 유저가 있는데 이로인해 정확한 식별이 어려운 상황입니다. 자동로그인 유저들은 로그인 버튼을 누르는 과정을 거치기 어려울 수가 있는데 로그인을 할 경우가 아닌 일반적인 앱 사용 과정에서의 ci 수집 방안이 있을까요?

여기서 말씀하신 자동로그인은 어떤기능인가요?

추가적으로 위 두가지 방법을 제외한 다른 식별 솔루션이 있다면 제공 부탁드립니다.

카카오 로그인은 기본적으로 앱유저ID로 고객식별을 해야하며 이는 Oauth2기반의 여타 소셜로그인도 동일합니다.
다른 값으로 고객을 식별하는 것은 권장하지 않습니다.

3.4. 카카오 로그인으로 기존 회원 매핑 시 주의 사항

답변 감사합니다.

자동로그인은 저희측 기능으로 타 서비스의 자동로그인으로 생각하시면 됩니다.

혹시 그렇다면, /v2/user/me에서 전달하는 id 항목의 최대 바이트수를 알 수 있을까요?
저희쪽에서 해당 id값을 저장하려면 넘어오는 값의 용량을 알아야 설계를 진행 할 수 있을것 같습니다.

답변 부탁드립니다.

감사합니다.

자동로그인은 저희측 기능으로 타 서비스의 자동로그인으로 생각하시면 됩니다.

CI 필수 확보를 위해 운영하시는 시스템 일반회원가입에 CI획득을 위한 본인인증이 필수로 있어야하고
카카오 로그인 시, CI를 필수/수집 동의항목으로 설정하시면 되나

말씀하신 자동로그인 기능으로 카카오 로그인 자체를 시도하지 않는 경우가 있다면 CI 로 온전한 식별은 불가능해보입니다.
로그인 시점에 CI가 없다면 본인 인증을 하는 기능을 두어 CI를 획득하는 것도 방법일듯합니다만,

위에서 설명드린 것처럼 카카오 로그인은 CI, 이메일 일치 여부와 무관하게 로그인 시도하는 카카오 계정의 앱유저ID로 고객식별하는 것을 권장드립니다.

혹시 그렇다면, /v2/user/me에서 전달하는 id 항목의 최대 바이트수를 알 수 있을까요?

Long 타입으로 길이가 변하는 1 ~ 9223372036854775807 범위 내 숫자 값입니다.

안녕하세요.
혹시 앱유저ID 의 id값이
AccessTokenInfo 클래스의 id와 동일한 값이 맞을까요?

id Long 회원번호

네 맞습니다. 동일한 값입니다.


다른 건으로 문의 주셨던 디벨로퍼스앱 (131581) 설정을 보니 앱유저ID 비고정 설정되어 있는 것으로 확인됩니다.

"내 애플리케이션>제품 설정>카카오 로그인>고급 : 사용자 아이디 고정"을 활성화 하지 않으면 연결 해제(Unlink) 후, 다시 연결 시 사용자 ID(앱 유저 ID) 가 변경됩니다.

2018년 9월 19일 이후 생성한 앱은 앱유저ID 고정되도록 정책 변경되었으나 이전에 생성한 앱은 직접 설정을 변경하셔야합니다.

참고 [faq] 앱 연결이 끊겨요, 앱 유저 id가 바뀝니다

일반적으로 이용자들이 연결끊기한 이후에 다시 기존계정에 연결하고자 하는 경우가 많아 의도적으로 앱유저ID 비고정 설정을 유지 하시는게 아니라면 고정하도록 변경하시면 좋을 것 같습니다.