카카오로그인 시 이메일 정보 가져오기

이메일 정보를 필수항목으로 설정했음에도 불구하고, 이메일 정보를 주지 않고 있습니다.

카카오계정에서 이메일 정보가 들어있는 것을 확인했고요, 회원탈퇴 후 재가입 해봐도 동일합니다.

추가로 제공해야할 정보가 있으면 알려주세요. 감사합니다.

kakao

크게 2가지가 있을것 같아요.

  1. 해당 계정에 email이 존재하지만 사용자가 제3자 정보 제공 동의를 하지 않은 경우
  2. 해당 테스트한 계정에 email 자체가 없는 경우

우선 위 1번의 경우는, 서비스에서 동적 동의에 대한 고려를 해 보셔야 합니다. 하지만 가장 간단한 테스트로는 해당 사용자를 unlink하고, 다시 가입을 시도할때(이메일 동의창이 나오면 체크) 나오는지를 확인해보시는 방법도 있습니다.

동적 동의 부분은 아래를 한번 참고해 보세요.

위 2의 경우는 제공 되지 않을 수 있습니다. 이메일 자체가 없을수도 있으니까요. 이 경우는 서비스에서 이메일 수집등을 하시는 방법이 있습니다. 또는 카카오싱크에 입점을 하시어, 카카오계정의 이메일을 강제 수집(필수 및 수집 옵션 enable)하는 방법도 있습니다.

글을 제대로 읽고 답변을 해주셨으면 좋겠습니다. 매뉴얼 그대로 붙여넣기 하지마시구요.

이메일도 분명히 있는 계정이고, 탈퇴 후 재가입도 여러번 해보고 안되서 글을 남겼습니다.

제 계정으로 여러번 확인해 보았는데, 제3자 정보 제공 동의를 다시 하는 메뉴는 찾을 수 없었습니다.

재가입시에 이메일 동의창이 나오지 않아서 문의 드린 것입니다.

1개의 좋아요

안녕하세요. 카카오 입니다.
카카오 로그인은 OAuth 2.0 표준 스펙을 준수하고 있습니다.
따라서 카카오 로그인 요청 시 파라메터 scope을 명시할 경우, 해당 스콥에 대한 개인정보 동의만 받게 됩니다.

https://tools.ietf.org/html/rfc6749

세부적으로 파악한 내용입니다.
아래는 사용하고 계신 앱 요청하신 URI 입니다.

https://kauth.kakao.com/oauth/authorize?response_type=code&client_id=xxxxxx&scope=profile&state=Z3JNGXqbBZCtif_8D0hz5hWhuAeftMPNUIeCOW4_Kj4%3D&redirect_uri=https://api.taxmon.co.kr/login/oauth2/code/kakao

위 URI 에서 보시는 것과 같이 scope 파라메터에 profile 을 명사하여 요청하고 있습니다. 그렇기 때문에 이메일을 제외한 카카오 프로필 동의만 진행되고 따라서, 유저정보 조회 시 이메일 정보를 받을 수 없습니다.

디벨로퍼스에 설정한 scope에 대한 모든 항목을 동의받고자 하신다면, 아래와 같이 scope 파라메터를 빼고 요청 하시거나, 디벨로퍼스에 설정한 모든 scope을 명시하셔야 합니다.

<이메일포함 scope 파라메터 명시>

https://kauth.kakao.com/oauth/authorize?response_type=code&client_id=xxxxxx&scope=profile,account_email&state=Z3JNGXqbBZCtif_8D0hz5hWhuAeftMPNUIeCOW4_Kj4%3D&redirect_uri=https://api.taxmon.co.kr/login/oauth2/code/kakao

<scope 파라메터 제외>

https://kauth.kakao.com/oauth/authorize?response_type=code&client_id=xxxxxx&state=Z3JNGXqbBZCtif_8D0hz5hWhuAeftMPNUIeCOW4_Kj4%3D&redirect_uri=https://api.taxmon.co.kr/login/oauth2/code/kakao

감사합니다.

2개의 좋아요

@mycals 제가 언급한 2가지 가능성을 이미 체크하셨고, 글에 써 주셨었네요 ㅠㅜ FAQ로 오는 질문이라 제가 너무 쉽게 생각했던것 같아요. 죄송합니다.

위에 lars.1 이 언급했듯이 scope param 이슈인것 같네요. 위 내용을 통해 다시 한번 해 보셔요. 번거롭게 해드려 죄송합니다.

친절히 답변해주셔서 감사합니다.

위의 방법으로 진행해보겠습니다.

1개의 좋아요