카카오톡 간편로그인 성공 후 유저 고유 키 값을 id와 email 중 어떤 것을 써야할까요?

        KOSessionTask.userMeTask(completion: { (error, me) in
            if let error = error as NSError? {
                UIAlertController.showMessage(error.description)
            } else if let me = me as KOUserMe? {
                print("id: \(String(describing: me.id))")
            } else {
                print("has no id")
            }
        })

위 코드로 id를 가져와서 확인해보니, 같은 카카오 계정이더라도 서로 다른 앱에서 카카오톡 로그인 했을 때, 값이 다릅니다.
같은 앱이면서 플랫폼이 다를 때 (iOS, Android, JS) id 값이 같다면, id를 고유 키로 써도 될 것 같은데, 플랫폼별로 아이디 값이 같은 지 궁금합니다.

만약 플랫폼별로 id 값이 다르면 반드시 사용자 email 가져와서 써야할텐데, 이메일주소가 없는 사용자가 있어 결정이 어렵네요.

답변 부탁드립니다.

1개의 좋아요

@help86 플랫폼별(iOS, Android, Web) 등에 대해 같은 앱같은 사용자계정(카카오계정) 일 경우 app user id는 동일합니다(단, 해당 사용자가 탈퇴(연결끊기/해제), 재가입을 할 경우 다른 id임). 하지만 말씀하신대로 서로 다른 앱/서비스 의 경우 같은 카카오계정일지라도 다른 app user id가 발급됩니다. 즉 앱/서비스 별로 해당 id는 isolation됩니다.

만약 다른 서비스간의 동일 사용자를 식별하기 위해서는 말씀하신대로 email로 매칭이 가능합니다.

일반적인 가이드는 다음과 같습니다.

  • 사용자의 email로 매칭을 한다
  • 사용자 email이 없을 경우 별로 input 창, flow등을 통해 사용자 email을 3rd에서 사용자로부터 직접 받는다.

email을 필수로 하거나, email이 없을 경우 로그인 실패를 시키거나, email이 없을 경우 email을 등록하는 기능의 flow를 내부적으로는 보유하고 있으나, 사용자에게 다소 폭력적으로 보일 수 있고 법적인 이슈가 있을 수 있어서 해당 기능은 3rd-party에게 오픈을 하지 않았습니다.

1개의 좋아요

안녕하세요.
여기서 '탈퇴’라는 건 로그아웃이나 앱 재설치의 경우도 해당하는건가요?