카카오 회원가입 중복호출

문의 사항에 따라 필요한 정보를 먼저 입력하시면 더 빠르게 대응해 드릴 수 있습니다.

  • 개발 과정에서 문제가 있을 경우

  • 카카오 회원가입 버튼을 더블클릭 혹은 지속적으로 계속 누르는 경우 동의 화면 이후에 콜백 url이 클릭 수만큼 호출되어 중복으로 가입이 되는 경우가 종종 있습니다.
    화면에서 더블클릭을 막기는 했지만, API가 리다이렉트 방식이라 여러번 호출이 되고 url는 로그인 혹은 동의 화면으로 바뀐 후 사용자 입장에서는 동의 화면을 한번만 보지만 콜백은 클릭한만큼 들어옵니다.
    그 들어오는 텀이 아주 짧고, 트랙잭션이 끝나지 않은 상태에서 또다시 들어오기 때문에 로직에서 셀렉트 되지 않아 중복가입으로 잡히지도 않아서 그대로 동시에 같은 값이 저장됩니다. (이후 로그인시 오류남)
    중복 호출을 막을 수 있는 방법 확인 부탁드립니다.
    감사합니다.

  • 퍼머링크 생성이 필요할 경우 (자세한 신청 방법은 가이드 참고)

    • 카카오싱크 퍼머링크의 서비스 랜딩URL:
    • 디벨로퍼스 앱과 연결된 카카오톡 채널의 검색용 아이디:

카카오 로그인 관련 에러(Invalid redirect. 예: KOE006)가 발생할 경우, 가이드를 참고합니다.
카카오 싱크 관련 자주하는 질문은 FAQ를 참고합니다.

안녕하세요.

운영하시는 사이트에서 카카오 로그인 인가코드요청을 중복으로 처리하시는 것이므로 카카오에서 조치할 수 없고
서비스내 조치하셔야합니다.

(1) 간단하게는 카카오 로그인 버튼 클릭 이벤트에서 이벤트 발생 시, 버튼 비활성화처리하고 카카오에 요청하는 방법이 있을 것 같습니다.

(2) 사이트내 스크립트를 보니 카카오 로그인 시, /member/joinKakao.do로 submit 하는 것으로 보입니다.
해당 페이지에서 사용자 세션을 캐시해서 동일 세션 요청 시, 일정 시간 인가코드 요청하지 않는 방법이 있구요.

(3) 매번 새로운 세션으로 로그인 요청하는 악의적인 처리라면 요청자 IP 차단 하시면 좋을 것같습니다.


다만,

화면에서 더블클릭을 막기는 했지만, API가 리다이렉트 방식이라 여러번 호출이 되고 url는 로그인 혹은 동의 화면으로 바뀐 후 사용자 입장에서는 동의 화면을 한번만 보지만 콜백은 클릭한만큼 들어옵니다.

화면에서 요청을 막았는데 API가 리다이렉트 방식이라 여러번 호출된다는 것은 이해가지 않습니다.

화면 액션 → /member/joinKakao.do로 submit → joinKakao.do에서 카카오로 인가코드요청 → 리다이렉트 URI로 이동 순으로 처리되므로 요청주체는 제공하시는 서비스입니다.

1개의 좋아요